Saltar al contenido

Introducción a la tecnología de IA: sugerencias y anotaciones de tipos de Python: ¡John lo explica en detalle!

Introducción a la tecnología de IA: sugerencias y anotaciones de tipos de Python: ¡John lo explica en detalle!

El camino para convertirse en un creador de IA | Introducción del artículo "¿Qué es una sugerencia de tipo?" ¡Mejora drásticamente tu código con sugerencias y anotaciones de tipo de Python! Mejora la legibilidad y la facilidad de mantenimiento. #Python #tiphint #desarrolloIA

Explicación en vídeo

Últimas tendencias en IA: Introducción a las sugerencias y anotaciones de tipos de Python – Guía para principiantes de John

Hola, soy John, un bloguero veterano. La tecnología de IA evoluciona día a día, y el lenguaje de programación Python juega un papel fundamental en ella. Hoy explicaré de forma sencilla las "tips de tipo" y las "anotaciones", que pueden parecer un poco técnicas, pero son funciones muy útiles para quienes están empezando a aprender Python o para quienes ya lo usan pero quieren mejorar su código.

No te preocupes si te preguntas "¿Qué son las sugerencias de tipo?" o "¿Son útiles las anotaciones?". Al final de este artículo, comprenderás por qué estas tecnologías son tan útiles en el desarrollo de IA y en proyectos a gran escala, y cuánto pueden potenciar tu código Python.


Visualización llamativa de Python, sugerencias de tipos, anotaciones y vibraciones de tecnología de IA.

¿Qué son, de todos modos, las sugerencias de tipo y las anotaciones?

Python es un tipo de lenguaje de programación llamado "lenguaje de tipado dinámico". Esto significa que, al escribir un programa, no es necesario declarar estrictamente las variables (cajas que almacenan datos) como "esta es una caja solo para números" o "esta es una caja solo para letras", ya que Python las interpretará hasta cierto punto. Esto es muy útil cuando se desea escribir un script de forma rápida y sencilla.

Sin embargo, a medida que un proyecto crece o es desarrollado por varias personas, este comportamiento "fácil de entender" puede generar confusión, como "¿Qué tipo de datos contiene esta variable?". Por ejemplo, una función (un conjunto de procesos específicos) podría esperar un número, pero podría pasar un carácter por error, lo que provocaría un error.

apareciendo allí"Consejos de escritura"Anotacionesで す.

  • El hombre de las nubeses una característica introducida en Python 3.0 que le permite agregar "anotaciones" o "metadatos (datos sobre datos)" a variables y funciones.
  • Sugerencias de tipoEs uno de los usos más comunes de esta función de anotación, que indica el tipo (tipo de datos) que deben tener las variables, los argumentos de función (datos pasados ​​a una función) y los valores de retorno (resultados devueltos por una función). Esto se ha convertido oficialmente en parte del lenguaje en Python 3.5 (definido en una propuesta llamada PEP 484 - Propuesta de Mejora de Python 484).

En pocas palabras, las sugerencias de tipo son cosas como "esta variable va a contener una cadena (tipo str)" o "esta función va a devolver un entero (tipo int)".Deja "pistas" en el códigoEsto hace que sea mucho más fácil entender lo que el código está intentando hacer, lo que ayuda a prevenir errores inesperados.

Los tipos de problemas que se resuelven y sus características únicas

Los principales problemas que resuelven las sugerencias de tipos son:

  • Legibilidad reducida del códigoEs difícil comprender qué datos maneja el código escrito por otros o el código que usted escribió en el pasado.
  • Error inesperado:Un error que no notas hasta que intentas ejecutarlo, como pasar el tipo de datos incorrecto a una función.
  • Deterioro de la eficiencia del desarrolloEs probable que surjan malentendidos en proyectos de gran escala y en el desarrollo de equipos.

Las características únicas de las sugerencias de tipo son:

  • OpcionalLas sugerencias de tipo no son necesarias, puedes usarlas donde quieras.
  • Para desarrolladores y herramientasEn el tiempo de ejecución de Python (cuando el programa se está ejecutando), las sugerencias de tipo son (normalmente)será ignoradoEn otras palabras, escribir sugerencias de tipo no modifica directamente el comportamiento de un programa, ni Python se detiene automáticamente con un error si se usa un tipo incorrecto (aunque existen casos y herramientas excepcionales). Las sugerencias de tipo se utilizan principalmente para facilitar la comprensión del código a los desarrolladores y para que las herramientas llamadas "verificadores de tipo estáticos" detecten errores de tipo antes de ejecutar el código.
  • Habilitación del análisis estáticoLas sugerencias de tipo permiten que herramientas de análisis estático como Mypy verifiquen su código y le adviertan de posibles errores de tipo con antelación, ayudándole a encontrar muchos errores incluso antes de ejecutar su programa.

Es posible que se sorprenda y piense: "¿Qué? ¿No verifica en tiempo de ejecución?", pero este es un equilibrio exquisito que mantiene la flexibilidad de Python al tiempo que aumenta la robustez (menos errores).

¿Qué son las sugerencias de tipo de Python? Un análisis profundo de sus fundamentos.

Ahora, profundicemos en el mundo de las sugerencias de tipos de Python. Hay una frase que dice: «Python se considera un lenguaje dinámico, pero fuertemente tipado. Los tipos se asocian con cosas, no con sus nombres». Esto significa que el «nombre» de una variable no tiene un tipo fijo, sino que el «valor» que contiene la variable sí lo tiene.

Las sugerencias de tipo permiten a los desarrolladores proporcionar "señales" en su código sobre qué tipo debe tener este "valor".

¿Por qué son importantes las sugerencias de tipos?

Los beneficios de introducir sugerencias de tipos son múltiples.

  • Legibilidad de código mejorada:
    Queda claro de inmediato qué tipo de datos (argumentos) recibe la función y qué tipo de datos (valor de retorno) devuelve. Esto aclara la intención del código y facilita su comprensión para otros desarrolladores y para ti en el futuro. Este es un código verdaderamente autodocumentado.
  • Detección temprana de errores:
    Las herramientas de verificación de tipos estáticos como Mypy y Pyright pueden ayudarle a encontrar inconsistencias de tipos (por ejemplo, pasar una cadena donde se espera un número) antes de ejecutar su código, lo que le permite corregir errores antes en el ciclo de desarrollo y reducir la repetición del trabajo.
  • Mejorar la eficiencia del desarrollo del equipo:
    En proyectos grandes y desarrollo en equipo, es fundamental que la interfaz (cómo se intercambian los datos) de cada módulo o función sea clara. Las sugerencias de tipo ayudan a definir claramente esta interfaz y a reducir el coste de la comunicación entre los miembros del equipo.
  • Editor mejorado y compatibilidad con IDE:
    Un editor de código potente o un entorno de desarrollo integrado (IDE) como Visual Studio Code (VS Code) utiliza información de sugerencias de tipo para proporcionar una finalización de código más inteligente (autocompletado), informes de errores y asistencia de refactorización, lo que hace que su experiencia de codificación sea más eficiente y cómoda.

¿Cómo utiliza Python las sugerencias de tipo (pero en realidad no las utiliza?)

Aclaremos un concepto erróneo común aquí: ¿cómo utiliza Python las sugerencias de tipo?Las sugerencias de tipo no se utilizan durante la ejecución normal del programa Python.Al ejecutar su programa, la información de tipo que ha escrito prácticamente se ignora (aunque se conserva de alguna forma). Los sistemas de comprobación de tipos (como Mypy en su editor o IDE) utilizan las sugerencias de tipo antes de la ejecución, es decir, durante el desarrollo. En otras palabras, las sugerencias de tipo de Python no son para el entorno de ejecución.Para desarrolladoresEs una cosa

Esto puede parecer contradictorio para aquellos acostumbrados a lenguajes donde las declaraciones de tipos son obligatorias, pero el equipo de desarrollo de Python ha dejado en claro que las sugerencias de tipos no son un precursor para convertir el lenguaje central de Python en un lenguaje tipado estáticamente: son una forma para que los desarrolladores agreguen metadatos a su base de código para facilitar el análisis estático durante el desarrollo.

Cómo utilizar sugerencias de tipo: ¡Echemos un vistazo al código!

Ver para creer, así que echemos un vistazo a algunos ejemplos de código y aprendamos cómo utilizar sugerencias de tipos.

Sugerencias básicas sobre tipos de variables

Para escribir una pista sobre una variable, siga el nombre de la variable con dos puntos (:) seguido del nombre del tipo.


# 変数宣言と同時に型ヒントを記述
name: str = "ジョン"
age: int = 42
pi: float = 3.14159
is_developer: bool = True

# 型ヒントのみを先に宣言することも可能
country: str
country = "日本"

En el ejemplo anterior,name es una cadena (str),age es un entero (int),pi es un número de punto flotante (float),is_developer es un booleano (bool) se da como pista.

Si está utilizando un verificador de tipos, el siguiente código activará una advertencia:


user_id: int
user_id = "user123"  # 型チェッカーは「整数が期待されるのに文字列が代入されている」と警告

Sin embargo, como se mencionó anteriormente, este código se puede ejecutar sin errores en Python (como una cadena). user_id Las sugerencias de tipo son simplemente "sugerencias" y su verdadero valor proviene de su "socio": un verificador de tipo.

Sugerencias sobre el tipo de función

Los argumentos de función y sus valores de retorno también pueden tener una pista de tipo. Al igual que las variables, los argumentos pueden tener una pista de tipo. 引数名: 型 El tipo de retorno se especifica mediante una flecha (->) y el nombre del tipo.


def greet(name: str, age: int) -> str:
    message: str = f"こんにちは、{name}さん!あなたは{age}歳ですね。"
    return message

# 関数の呼び出し
user_name: str = "さくら"
user_age: int = 25
greeting_message: str = greet(user_name, user_age)
print(greeting_message)
# 出力: こんにちは、さくらさん!あなたは25歳ですね。

# 何も返さない関数の場合、戻り値の型は None とします
def print_message(message: str) -> None:
    print(message)

print_message("型ヒントは便利!")

この greet La función esname El tipo de cadena (str) argumentos, yage El tipo entero (int) argumento y devuelve un tipo de cadena (str) valor.print_message La función no devuelve un valor, por lo que el tipo de retorno es None Se ha convertido.

Esto permite al usuario de la función comprender inmediatamente qué datos pasar y qué se devolverán, y el editor también proporciona soporte inteligente.

Sugerencias de tipo para tipos de colecciones (listas, diccionarios, etc.)

Lista (list) y diccionarios (dict), tupla (tuple), los tipos de colección que contienen otros objetos como elementos, también pueden tener sugerencias de tipo.

En Python 3.9 y versiones posteriores, puedes usar tipos de colección estándar sin corchetes. []En versiones anteriores, se podía especificar el tipo de elemento entyping El tipo correspondiente del módulo (p. ej. List, Dict) para usarlo. Aquí está la forma moderna de escribirlo en Python 3.9 y versiones posteriores.


# 文字列のリスト
names: list[str] = ["ジョン", "アリス", "ボブ"]

# 整数のリスト
numbers: list[int] = [1, 2, 3, 4, 5]

# キーが文字列で、値が整数の辞書
scores: dict[str, int] = {"国語": 80, "数学": 95, "英語": 70}

# 整数と文字列のペアからなるタプル
person: tuple[int, str, bool] = (1, "ジョン", True)

# 要素の型が混在する可能性のあるリスト (後述のUnion型がより適切)
# mixed_list: list = [1, "apple", True] # これでも良いが、より具体的に書けるなら書いた方が良い

Un diccionario consta de claves y valores, que pueden tener diferentes tipos.dict[キーの型, 値の型] La lista se especifica de la siguiente manera: list[要素の型] Especificar:

Tipos opcionales y de unión

A veces indica que una variable tiene un tipo particular o "no tiene valor". None En algunos casos, el tipo puede ser uno de varios tipos. OptionalUnion で す.

Para utilizarlos,typing Debe importarlo desde un módulo (Python 3.10 y posterior requiere Union En lugar de | Ahora podemos usar operadores, lo que lo hace más sencillo.

Tipo opcional: Un tipo, o None Se utiliza cuando se permite.Optional[X]Union[X, None] Significa lo mismo.


from typing import Optional

def find_user(user_id: int) -> Optional[str]:
    if user_id == 1:
        return "ジョン"
    elif user_id == 2:
        return "アリス"
    else:
        return None  # ユーザーが見つからない場合は None を返す

user_name_1: Optional[str] = find_user(1) # "ジョン" が入る
user_name_3: Optional[str] = find_user(3) # None が入る

if user_name_3 is not None:
    print(user_name_3.upper()) # Noneでないことを確認してから操作
else:
    print("ユーザーが見つかりませんでした。")

Tipo de unión: Indica que es uno de varios tipos.


from typing import Union

# IDは数値かもしれないし、文字列かもしれない
item_id: Union[int, str]
item_id = 101       # OK
item_id = "item-001" # OK
# item_id = 3.14    # 型チェッカーは警告 (floatは Union[int, str] に含まれない)

# Python 3.10 以降ではパイプ演算子 | を使ってより簡潔に書けます
item_id_new: int | str
item_id_new = 202
item_id_new = "item-002"

# Optional も同様に書けます
maybe_name: str | None = None
maybe_name = "ベティ"

int | str significa "un entero o una cadena"str | None significa "una cadena o Ninguno", lo que comunica claramente los tipos posibles y al mismo tiempo mantiene la flexibilidad del código.

Clases y sugerencias de tipos

También puedes utilizar clases (planos de objetos) que definas como sugerencias de tipo.


class User:
    def __init__(self, name: str, age: int) -> None:
        self.name: str = name
        self.age: int = age

    def get_info(self) -> str:
        return f"{self.name} ({self.age}歳)"

# Userクラスのインスタンスを型ヒントとして使用
def process_user(user: User) -> None:
    print(f"処理中のユーザー: {user.get_info()}")
    # ... 何らかの処理 ...

user1: User = User("デビッド", 30)
process_user(user1)

# Userオブジェクトを要素とするリスト
users: list[User] = [
    User("キャロル", 28),
    User("デイブ", 35)
]

User Toma una instancia de una clase como argumento process_user Funciones yUser lista de objetos users Puede utilizar sus propias clases como sugerencias de tipo al igual que los tipos incorporados. __init__get_info argumento de self Para , normalmente no es necesario proporcionar sugerencias de tipo explícitas. El verificador de tipos self Se interpreta como una instancia de la propia clase. Si necesita una sugerencia de tipo que haga referencia explícita a la propia clase (por ejemplo, si un método devuelve una nueva instancia de la clase), en Python 3.11 y versiones posteriores typing.Self Puedes importarlo y utilizarlo.


Ilustración de tecnología de IA con sugerencias de tipos y anotaciones en Python

Relación entre anotaciones y sugerencias de tipo

Hasta ahora, he usado principalmente el término "tips de tipo", pero también he visto el término "anotaciones". Aclaremos la relación entre ambos.

Anotaciones es una sintaxis introducida en Python 3.0 que le permite agregar metadatos arbitrarios (información adicional) a funciones y variables.:(dos puntos) a la variable,->(flecha) para adjuntar información al valor de retorno de una función.


# 変数アノテーション
version: str = "1.0"
debug_mode: bool = True

# 関数アノテーション
def get_data(source: 'DataSource', timeout: int = 10) -> 'ResultObject':
    # ...処理...
    pass

Esta información de anotación básicamente se ignora cuando se ejecuta el programa.__annotations__ Se puede acceder a través de un atributo especial:


print(get_data.__annotations__)
# 出力例: {'source': 'DataSource', 'timeout': , 'return': 'ResultObject'}

そ し て,Sugerencias de tipo es la función de anotaciónEl uso más común y estándarEsto se propuso en PEP 484. En otras palabras, dentro del mecanismo más amplio de anotaciones, las sugerencias de tipo se posicionan como una forma de describir información sobre los "tipos".

En teoría, es posible escribir información distinta a los tipos en las anotaciones (como una descripción de algo o una marca utilizada por una biblioteca específica), pero actualmente se reconocen y se utilizan casi exclusivamente como "una forma de escribir sugerencias de tipos".

Evolución de los tipos de sugerencias: evaluación perezosa

Un problema que a veces puede resultar molesto cuando se trabaja con sugerencias de tipo es el problema de las "referencias futuras", que surgen cuando se desea utilizar un nombre (como un nombre de clase) como una sugerencia de tipo que aún no se ha definido.

Problemas de referencia futura

Por ejemplo, supongamos que desea definir dos clases que se referencian entre sí.


# この時点では Address クラスはまだ定義されていない
class User:
    def __init__(self, name: str, address: Address): # ここでエラーになる可能性
        self.name = name
        self.address = address

class Address:
    def __init__(self, street: str, user: User): # ここでエラーになる可能性
        self.street = street
        self.user = user

User Dentro de una definición de clase Address como una sugerencia de tipo, pero el intérprete de Python User Al momento de cargar la clase, Address No sabe qué es una clase y viceversa.

La forma tradicional de resolver este problema es escribir la sugerencia de tipo como un literal de cadena (entre comillas simples o dobles).


class User:
    def __init__(self, name: str, address: 'Address'): # 文字列として指定
        self.name = name
        self.address = address

class Address:
    def __init__(self, street: str, user: 'User'): # 文字列として指定
        self.street = street
        self.user = user

# 型チェッカーはこの文字列を後で解釈してくれる

Se trata de un tipo de "anotación diferida" que evita errores al posponer la resolución de nombres.

from __future__ import annotations

Una solución más moderna y recomendada fue introducida en PEP 563. from __future__ import annotations Si coloca esto en la parte superior de un módulo (archivo Python), todas las anotaciones en ese archivo se tratarán como cadenas en tiempo de ejecución y se resolverán en tipos reales cuando el verificador de tipos lo necesite.


from __future__ import annotations # これをファイルの先頭に書く

class User:
    def __init__(self, name: str, address: Address): # 文字列にしなくてもOK
        self.name = name
        self.address = address

class Address:
    def __init__(self, street: str, user: User): # 文字列にしなくてもOK
        self.street = street
        self.user = user

u = User("ケン", Address("公園通り123", u)) # エラーなく定義・利用できる(ただしこの例は再帰的で注意が必要)

Escribir este encanto le permite escribir sugerencias de tipos de manera natural sin preocuparse por problemas de referencia futura, y es la solución recomendada, ya que permite al verificador de tipos resolver estas anotaciones de manera más poderosa y completa.

Comportamiento predeterminado de Python 3.14

Y así como la tecnología de IA continúa evolucionando, Python también continúa evolucionando.A partir de Python 3.14, la evaluación perezosa de anotaciones es el comportamiento predeterminado.(PEP 649). Esto significa que en Python 3.14 y versiones posteriores,from __future__ import annotations En lugar de escribir

Esto permitirá a los desarrolladores gestionar las sugerencias de tipo de forma más intuitiva y se espera que mejore el rendimiento y la flexibilidad. Precisamente por eso se dice que «Python 3.14 cambia las sugerencias de tipo para siempre». Sin embargo, para garantizar la compatibilidad con versiones anteriores, las sugerencias de tipo se mantendrán sin cambios durante un tiempo. from __future__ import annotations Puede ser un buen hábito escribirlo explícitamente.

Herramienta de comprobación de sugerencias de tipo: su socio de codificación

Simplemente escribir una sugerencia de tipo es simplemente una "sugerencia". Una herramienta llamada "verificador de tipos estáticos" verifica si la sugerencia es correcta y consistente. Estas herramientas ejecutan el código yAntes deLe ayudará a identificar problemas relacionados con el tipo.

  • Mi py:
    Mypy es un verificador de tipos estático que se puede considerar el estándar de facto para las sugerencias de tipos de Python. Se utiliza en numerosos proyectos y ofrece una amplia gama de funciones. Desarrollado por Dropbox, Mypy revisa tu código según las sugerencias de tipos que escribes y te advierte sobre discrepancias de tipos y posibles errores.
  • Derechos de autor:
    Es un verificador de tipos rápido desarrollado por Microsoft. En particular, el editor de Visual Studio Code utiliza Pyright a través de la extensión Pylance, que proporciona verificación de tipos en tiempo real y autocompletado de código avanzado.
  • Pytype:
    Un verificador de tipos desarrollado por Google que es bueno para inferir tipos incluso para código que carece de sugerencias de tipos y puede ser útil al introducir información de tipos en una base de código que carece de sugerencias de tipos existentes.

La incorporación de estas herramientas en su proceso de desarrollo proporciona los siguientes beneficios:

  • Detección temprana y corrección de erroresMuchos errores de ejecución están relacionados con el tipo. Detectarlos en una etapa temprana del desarrollo reduce significativamente el tiempo de depuración.
  • Refactorización de mejoras de seguridadCuando refactoriza su código, el verificador de tipos detectará cambios de tipos no deseados, para que pueda trabajar con tranquilidad.
  • Mantener la calidad del código:Ayuda a garantizar una calidad de código consistente cuando se desarrolla en equipo.

Estas herramientas suelen ejecutarse desde la línea de comandos o integrarse en un IDE. Por ejemplo, con Mypy, en tu terminal, escribe mypy your_script.py Esto informará cualquier error de tipo.

Advertencias y prácticas recomendadas al utilizar sugerencias de tipo

Las sugerencias de tipos son una herramienta muy poderosa, pero hay algunas advertencias y prácticas recomendadas para usarlas de manera efectiva.

  • Comprenda que las sugerencias de tipo son opcionales:
    Las sugerencias de tipo no son obligatorias en Python. No tienes que forzarte a añadirlas a todo tu código. Especialmente para scripts personales pequeños o cuando estás empezando a aprender Python, puedes centrarte más en el aprendizaje escribiendo sin sugerencias de tipo. Decide dónde introducirlas según la escala y el propósito de tu proyecto.
  • Introducir gradualmente:
    Sería una tarea enorme añadir repentinamente sugerencias de tipo a todas las bases de código existentes. Es más realista introducirlas gradualmente en módulos, funciones y código nuevo importantes.
  • AnyCuándo utilizar tipos y puntos a tener en cuenta:
    typingen el modulo Any Existe un tipo especial llamado "pista de tipo", que significa "acepta cualquier tipo" y desactiva la comprobación de tipos. Es aceptable usarlo temporalmente cuando el tipo es muy complejo y difícil de expresar, o en áreas con propiedades dinámicas muy fuertes. Sin embargo, si se usa demasiado, se perderán las ventajas de las sugerencias de tipo, por lo que se recomienda escribir los tipos de la forma más específica posible.
  • Comprenda la diferencia con la verificación de tipos en tiempo de ejecución:
    Nuevamente, las sugerencias de tipos estándar en Python se utilizan para el análisis estático, no para la aplicación de tipos en tiempo de ejecución. Si desea comprobar los tipos en tiempo de ejecución, puede considerar el uso de bibliotecas de terceros como Pydantic o Beartype. Estas proporcionan validación de datos y aplicación de tipos en tiempo de ejecución, pero se trata de una técnica más avanzada que el uso básico de las sugerencias de tipos.
  • Mantenga las sugerencias de tipo consistentes:
    Si trabaja en equipo, es una buena idea tener algunas convenciones sobre cómo se escriben las sugerencias de tipo y cuán estrictamente se aplican, para garantizar la coherencia en toda la base de código.
  • Colaboración con la documentación:
    Las sugerencias de tipo pueden servir como parte de la documentación de su código, pero para explicar una lógica o intención compleja, también es una buena idea utilizar cadenas de documentación (descripciones de funciones o clases).


Potencial futuro de Python, sugerencias de tipos, anotaciones representadas visualmente

Resumen y perspectivas de futuro

Las sugerencias y anotaciones de tipo de Python son una herramienta poderosa para la programación moderna en Python, ya que mejoran drásticamente la calidad, la legibilidad y la facilidad de mantenimiento del código. Al principio, pueden resultar un poco intimidantes, pero una vez que experimentes sus beneficios, no querrás dejarlas ir.

Especialmente en los campos de la IA (inteligencia artificial) y el aprendizaje automático, los datos que se manejan suelen ser complejos y los proyectos suelen ser de gran escala. En estas situaciones, una definición clara de la interfaz y la detección temprana de errores mediante sugerencias de tipo afectan considerablemente la eficiencia del desarrollo y la fiabilidad del sistema. Mientras Python siga siendo el lenguaje principal para el desarrollo de IA, se prevé que la importancia de las sugerencias de tipo aumente.

Python continúa evolucionando, y la usabilidad de las sugerencias de tipos mejora constantemente, como por ejemplo, al establecer la evaluación diferida como predeterminada en Python 3.14. Esperamos que en el futuro se añadan características del sistema de tipos más expresivas y fáciles de usar.

Te animamos a usar sugerencias de tipo en tus proyectos de Python para que tu código sea más robusto y fácil de entender. Incluso si empiezas con una función pequeña, ¡verás los beneficios!

Preguntas frecuentes (FAQ)

P1: ¿La sugerencia de tipos hará que Python se ejecute más rápido?
R1: No, normalmente no. Las sugerencias de tipo estándar de Python están diseñadas principalmente para ayudar a las herramientas de análisis estático y a los desarrolladores a comprender mejor el código, y el intérprete de Python no las utiliza en tiempo de ejecución. Sin embargo, existen otras herramientas y proyectos, como Mypyc (parte de Mypy que compila código Python con sugerencias de tipo a una extensión de C) y Cython, que utilizan la información de tipo para acelerar el código Python.
P2: ¿Necesito escribir una pista sobre todas las variables y funciones?
A2: No, no es necesario y no siempre es la mejor idea. Depende del tamaño del proyecto, la política del equipo y la naturaleza del código. En general, es recomendable introducir sugerencias de tipo en áreas donde se requiere mayor claridad, como funciones de API públicas, partes que manejan estructuras de datos complejas y partes donde es probable que se produzcan errores.
P3: ¿Mi programa fallará si uso el tipo de sugerencia incorrecto?
A3: Al ejecutar un programa Python, los errores en la escritura de las sugerencias de tipo no suelen causar errores directos (salvo errores de sintaxis). Python ignorará las sugerencias de tipo e intentará ejecutar el código. Sin embargo, si utiliza un verificador de tipos estático como Mypy o Pyright, las inconsistencias o errores en las sugerencias de tipo se reportarán como errores o advertencias durante la fase de verificación de tipos. Este es uno de los principales propósitos de las sugerencias de tipo.
P4: ¿En qué versiones de Python están disponibles las sugerencias de tipos?
A4: El concepto básico y la sintaxis de las sugerencias de tipo se introdujeron en Python 484 como PEP 3.5. Desde entonces, se han añadido funciones más prácticas y expresivas con cada nueva versión de Python. Por ejemplo,list[int] Los tipos genéricos integrados como los siguientes están disponibles desde Python 3.9:int | str La nueva sintaxis para tipos de unión como esta se introdujo en Python 3.10. Para aprovechar las últimas funciones, se recomienda usar una versión más reciente de Python.
P5: ¿Es costoso aprender las sugerencias de tipos?
A5: Tipo básico (str, int, float, bool, list, dictSi empiezas con los consejos del artículo anterior, el coste de aprendizaje no es tan alto. Dominar los tipos complejos (genéricos, protocolos, invocables, etc.) requerirá algo de aprendizaje, pero puedes avanzar gradualmente. Es recomendable empezar con algo sencillo y ver los beneficios.

Enlace relacionado

Si desea obtener más información, aquí hay algunos recursos útiles:

Espero que este artículo haya sido tu primer paso en el mundo de las sugerencias y anotaciones de tipos de Python. ¡Feliz programación!

Aviso legal: Este artículo es solo informativo y no recomienda ni garantiza el uso de ninguna tecnología en particular. La elección y el uso de cualquier tecnología quedan a su entera discreción y riesgo.

El hombre que se enamora de él

Etiquetas:

コ メ ン ト を 残 す

メ ー ル ア ド レ ス が 公開 さ れ る こ と は あ り ま せ ん. El campo está campos necesarios están marcados