Table des matières
1. Les indices de type ne sont valables qu'au niveau syntaxique.
2. Utilisez mypy pour vérifier les indices de type
3. Avantages des astuces de type
4. indice, ce n'est pas possible :
Si vous souhaitez afficher un tel type :
Que devez-vous faire si vous devez demander un tel type ?
À partir de Python 3.10, Union est remplacée par | maintenant équivalent à X|Y.
9、Any 用法
10、Optional 用法
11、Sequence 用法
12、Tuple 用法
最后的话
Maison développement back-end Tutoriel Python Meilleures pratiques pour les astuces de type en Python

Meilleures pratiques pour les astuces de type en Python

Apr 23, 2023 am 09:28 AM
python 类型 代码

Utiliser un langage dynamique est un plaisir temporaire, et le code est reconstruit dans le crématorium. Je pense que vous devez avoir entendu cette phrase. Comme les tests unitaires, même si l'écriture du code prend un peu de temps, cela en vaut la peine à long terme. Cet article explique comment mieux comprendre et utiliser les astuces de type Python.

1. Les indices de type ne sont valables qu'au niveau syntaxique.

Les indices de type (introduits depuis la PEP 3107) sont utilisés pour ajouter des types aux variables, paramètres, paramètres de fonction et leurs valeurs de retour, propriétés de classe et méthodes.

Les types de variables de Python sont dynamiques et peuvent être modifiés au moment de l'exécution pour ajouter des indices de type au code. Ils ne sont pris en charge qu'au niveau de la syntaxe et n'ont aucun impact sur l'exécution du code. L'interpréteur Python ignorera les indices de type lors de l'exécution du code. code.

Par conséquent, une fonction intuitive des indices de type consiste à améliorer la lisibilité du code, en permettant à l'appelant de transmettre plus facilement les paramètres d'entrée/sortie du type approprié et en facilitant la reconstruction du code.

Les types de base intégrés de Python peuvent être utilisés directement pour les indices de type :

Exemples d'indices de type pour les variables :

a: int = 3
b: float = 2.4
c: bool = True
d: list = ["A", "B", "C"]
e: dict = {"x": "y"}
f: set = {"a", "b", "c"}
g: tuple = ("name", "age", "job")
Copier après la connexion

Indices de type pour les fonctions :

def add_numbers(x: type_x, y: type_y, z: type_z= 100) -> type_return:
return x + y + z
Copier après la connexion

type_x, type_y, type_z, type_return ici peuvent être des types de base intégrés , ou Peut être un type personnalisé.

Indices de type de classe :

class Person:
first_name: str = "John"
last_name: str = "Does"
age: int = 31
Copier après la connexion

2. Utilisez mypy pour vérifier les indices de type

S'il existe un tel morceau de code :

x: int = 2

x = 3.5
Copier après la connexion

Il n'y aura aucune erreur lors de son exécution avec l'interpréteur Python :

如何更好的使用 Python 的类型提示?

Avec l'aide de Utilisez simplement mypy. Installez-le d'abord avec pip install mypy, puis utilisez mypy script.py :

如何更好的使用 Python 的类型提示?

Pour plus d'informations sur mypy, veuillez vous référer à l'article précédent. Mypy est un outil qui crée des Python. tapez des conseils très pratiques.

3. Avantages des astuces de type

Si l'interpréteur n'applique pas les astuces de type, pourquoi s'embêter à écrire des astuces de type ? Il est vrai que les indications de type ne changent pas la façon dont votre code s'exécute : Python est typé dynamiquement par nature, et il est peu probable que cela change. Cependant, du point de vue de l’expérience du développeur, les indications de type présentent de nombreux avantages.

(1) Utilisez des astuces de type, en particulier dans les fonctions, pour clarifier les types de paramètres et le type de résultats générés, ce qui est très facile à lire et à comprendre.

(2) Les astuces de type éliminent la surcharge cognitive et rendent le code plus facile à lire et à déboguer. Compte tenu des types d’entrées et de sorties, vous pouvez facilement déduire les objets et la manière dont ils sont appelés.

(3) Les astuces de type peuvent améliorer l'expérience d'édition de code. Les IDE peuvent s'appuyer sur la vérification de type pour analyser statiquement votre code et aider à détecter les erreurs potentielles (par exemple, transmettre des paramètres du mauvais type, appeler la mauvaise méthode, etc.). De plus, la saisie semi-automatique est fournie pour chaque variable en fonction des indications de type.

如何更好的使用 Python 的类型提示?

Vérification du type IDE

如何更好的使用 Python 的类型提示?

Vérification du type IDE

如何更好的使用 Python 的类型提示?

Complètement automatique après la vérification du type IDE

4. indice, ce n'est pas possible :

def my_dummy_function(l: list[float]):
 return sum(l)
Copier après la connexion

Le typage de bibliothèque standard prend ce problème en considération, vous pouvez faire ceci :

from typing import List

def my_dummy_function(vector: List[float]):
 return sum(vector)
Copier après la connexion

5 Utilisation de Dict

Si vous souhaitez afficher un tel type :

my_dict = {"name": "Somenzz", "job": "engineer"}
Copier après la connexion

Avec l'aide de Dict. , vous pouvez définir le type comme ceci :

from typing import Dict
my_dict_type = Dict[str, str]
my_dict: my_dict_type = {"name": "Somenzz", "job": "engineer"}
Copier après la connexion

6. Utilisation de TypedDict

Que devez-vous faire si vous devez demander un tel type ?

d = {"name": "Somenzz", "interests": ["chess", "tennis"]}
Copier après la connexion

Avec l'aide de TypedDict, vous pouvez faire ceci :

如何更好的使用 Python 的类型提示?TypedDict

7. Utilisation d'Union

À partir de Python 3.10, Union est remplacée par | maintenant équivalent à X|Y.

Union[X, Y] (ou X | Y) signifie X ou Y.

Supposons que votre fonction doive lire un fichier du répertoire cache et charger le modèle Torch. Cet emplacement du répertoire de cache peut être une valeur de chaîne (telle que /home/cache), ou il peut s'agir d'un objet Path de la bibliothèque Pathlib. Dans ce cas, le code est le suivant :

def load_model(filename: str, cache_folder: Union[str, Path]):
if isinstance(cache_folder, Path):
cache_folder = str(cache_folder)

model_path = os.join(filename, cache_folder)
model = torch.load(model_path)
return model
Copier après la connexion

8.

Lorsque vous devez transmettre Lors de la saisie d'une fonction en tant que paramètre, l'indice de type de ce paramètre peut être Callable.

from typing import Callable

def sum_numbers(x: int, y: int) -> int:
return x + y

def foo(x: int, y: int, func: Callable) -> int:
output = func(x, y)
return output

foo(1, 2, sum_numbers)
Copier après la connexion

Vous pouvez également spécifier une liste de paramètres pour de tels paramètres de fonction, ce qui est vraiment puissant :

Syntaxe :

Callable[[input_type_1, ...], return_type]
Copier après la connexion

Exemple :

def foo(x: int, y: int, func: Callable[[int, int], int]) -> int:
output = func(x, y)
return output
Copier après la connexion

9、Any 用法

当你传入的参数可以为任何类型的时候,就可以使用 Any

def bar(input: Any):
...
Copier après la connexion

10、Optional 用法

如果你的函数使用可选参数,具有默认值,那么你可以使用类型模块中的 Optional 类型。

from typing import Optional

def foo(format_layout: Optional[bool] = True):
...
Copier après la connexion

11、Sequence 用法

Sequence 类型的对象是可以被索引的任何东西:列表、元组、字符串、对象列表、元组列表的元组等。

from typing import Sequence

def print_sequence_elements(sequence: Sequence[str]):
for i, s in enumerate(s):
print(f"item {i}: {s}"
Copier après la connexion

12、Tuple 用法

Tuple 类型的工作方式与 List 类型略有不同,Tuple 需要指定每一个位置的类型:

from typing import Tuple
t: Tuple[int, int, int] = (1, 2, 3)
Copier après la connexion

如果你不关心元组中每个元素的类型,你可以继续使用内置类型 tuple。

t: tuple = (1, 2, 3, ["cat", "dog"], {"name": "John"})
Copier après la connexion

最后的话

类型提示在代码之上带来了额外的抽象层:它们有助于记录代码,澄清关于输入/输出的假设,并防止在顶部执行静态代码分析 (mypy) 时出现的隐蔽和错误。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Peut-on exécuter le code sous Windows 8 Peut-on exécuter le code sous Windows 8 Apr 15, 2025 pm 07:24 PM

VS Code peut fonctionner sur Windows 8, mais l'expérience peut ne pas être excellente. Assurez-vous d'abord que le système a été mis à jour sur le dernier correctif, puis téléchargez le package d'installation VS Code qui correspond à l'architecture du système et l'installez comme invité. Après l'installation, sachez que certaines extensions peuvent être incompatibles avec Windows 8 et doivent rechercher des extensions alternatives ou utiliser de nouveaux systèmes Windows dans une machine virtuelle. Installez les extensions nécessaires pour vérifier si elles fonctionnent correctement. Bien que le code VS soit possible sur Windows 8, il est recommandé de passer à un système Windows plus récent pour une meilleure expérience de développement et une meilleure sécurité.

Choisir entre PHP et Python: un guide Choisir entre PHP et Python: un guide Apr 18, 2025 am 12:24 AM

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

L'extension VScode est-elle malveillante? L'extension VScode est-elle malveillante? Apr 15, 2025 pm 07:57 PM

Les extensions de code vs posent des risques malveillants, tels que la cachette de code malveillant, l'exploitation des vulnérabilités et la masturbation comme des extensions légitimes. Les méthodes pour identifier les extensions malveillantes comprennent: la vérification des éditeurs, la lecture des commentaires, la vérification du code et l'installation avec prudence. Les mesures de sécurité comprennent également: la sensibilisation à la sécurité, les bonnes habitudes, les mises à jour régulières et les logiciels antivirus.

Comment exécuter des programmes dans Terminal Vscode Comment exécuter des programmes dans Terminal Vscode Apr 15, 2025 pm 06:42 PM

Dans VS Code, vous pouvez exécuter le programme dans le terminal via les étapes suivantes: Préparez le code et ouvrez le terminal intégré pour vous assurer que le répertoire de code est cohérent avec le répertoire de travail du terminal. Sélectionnez la commande Run en fonction du langage de programmation (tel que Python de Python your_file_name.py) pour vérifier s'il s'exécute avec succès et résoudre les erreurs. Utilisez le débogueur pour améliorer l'efficacité du débogage.

Le code Visual Studio peut-il être utilisé dans Python Le code Visual Studio peut-il être utilisé dans Python Apr 15, 2025 pm 08:18 PM

VS Code peut être utilisé pour écrire Python et fournit de nombreuses fonctionnalités qui en font un outil idéal pour développer des applications Python. Il permet aux utilisateurs de: installer des extensions Python pour obtenir des fonctions telles que la réalisation du code, la mise en évidence de la syntaxe et le débogage. Utilisez le débogueur pour suivre le code étape par étape, trouver et corriger les erreurs. Intégrez Git pour le contrôle de version. Utilisez des outils de mise en forme de code pour maintenir la cohérence du code. Utilisez l'outil de liaison pour repérer les problèmes potentiels à l'avance.

Peut-on utiliser pour mac Peut-on utiliser pour mac Apr 15, 2025 pm 07:36 PM

VS Code est disponible sur Mac. Il a des extensions puissantes, l'intégration GIT, le terminal et le débogueur, et offre également une multitude d'options de configuration. Cependant, pour des projets particulièrement importants ou un développement hautement professionnel, le code vs peut avoir des performances ou des limitations fonctionnelles.

Peut-on rescode exécuter ipynb Peut-on rescode exécuter ipynb Apr 15, 2025 pm 07:30 PM

La clé de l'exécution du cahier Jupyter dans VS Code est de s'assurer que l'environnement Python est correctement configuré, de comprendre que l'ordre d'exécution du code est cohérent avec l'ordre cellulaire et d'être conscient des fichiers volumineux ou des bibliothèques externes qui peuvent affecter les performances. Les fonctions d'achèvement et de débogage du code fournies par VS Code peuvent considérablement améliorer l'efficacité du codage et réduire les erreurs.

See all articles