Explication des instructions d'importation Python

En apprenant la programmation et en lisant certaines ressources, vous êtes tombé sur ce mot «abstraction» qui signifie simplement réduire et réutiliser le code autant que possible.

Les fonctions et modules facilitent l'abstraction. Vous créez des fonctions lorsque vous souhaitez effectuer quelque chose de manière répétée dans un fichier.

Les modules entrent en scène lorsque vous souhaitez réutiliser un groupe de fonctions dans différents fichiers source. Les modules sont également utiles pour bien structurer le programme.

  • Utilisation de bibliothèques standard et d'autres modules tiers
  • Structurer le programme

Utilisation des bibliothèques standard

Exemple: Vous pouvez en savoir plus sur les méthodes / fonctions de toutes les bibliothèques standard dans la documentation officielle Python.

import time for i in range(100): time.sleep(1) # Waits for 1 second and then executes the next command print(str(i) + ' seconds have passed') # prints the number of seconds passed after the program was started
:fusée:

Exécuter le code

# To calculate the execution time of a part of program import time start = time.time() # code here end = time.time() print('Execution time:' , end-start)
:fusée:

Exécuter le code

# Using math Module import math print(math.sqrt(100)) # prints 10
:fusée:

Exécuter le code

Utilisation de modules tiers

Les modules tiers ne sont pas fournis avec python, mais nous devons l'installer en externe à l'aide de gestionnaires de packages tels que pipeteasy install

# To make http requests import requests rq = requests.get(target_url) print(rq.status_code)

En savoir plus sur le module de requêtes python ici

Pour structurer les programmes

Nous voulons faire un programme qui a diverses fonctions concernant les nombres premiers. Alors commençons. Nous définirons toutes les fonctions dansprime_functions.py

# prime_functions.py from math import ceil, sqrt def isPrime(a): if a == 2: return True elif a % 2 == 0: return False else: for i in range(3,ceil(sqrt(a)) + 1,2): if a % i == 0: return False return True def print_n_primes(a): i = 0 m = 2 while True: if isPrime(m) ==True: print(m) i += 1 m += 1 if i == a: break

Nous voulons maintenant utiliser les fonctions que nous venons de créer prime_functions.pyafin de créer un nouveau fichier playground.pypour utiliser ces fonctions.

Veuillez noter que ce programme est beaucoup trop simple pour créer deux fichiers séparés, c'est juste pour le démontrer. Mais quand il y a de gros programmes complexes, créer des fichiers différents est vraiment utile.

# playground.py import prime_functions print(prime_functions.isPrime(29)) # returns True

Tri des importations

La bonne pratique consiste à trier les importmodules en trois groupes: les importations de bibliothèques standard, les importations tierces associées et les importations locales. Dans chaque groupe, il est judicieux de trier par ordre alphabétique par nom de module. Vous pouvez trouver plus d'informations dans PEP8.

L'une des choses les plus importantes pour le langage Python est la lisibilité, et les modules de tri alphabétique sont plus rapides à lire et à rechercher. Il est également plus facile de vérifier que quelque chose est importé et d'éviter les importations en double.

Depuis X import Y: un exemple

Voici un exemple de problème:

>>> from math import ceil, sqrt >>> # here it would be >>> sqrt(36) <<< 6
:fusée:

Exécuter le code

Ou nous pourrions utiliser celui-ci à la place:

>>> import math >>> # here it would be >>> math.sqrt(36) <<< 6
:fusée:

Exécuter le code

Alors notre code ressemblerait à math.sqrt(x)au lieu de sqrt(x). Cela se produit parce que lorsque nous utilisons import x, un espace de noms xest lui-même créé pour éviter les conflits de noms. Vous devez accéder à chaque objet du module en tant que x..

Mais lorsque nous l'utilisons, from x import ynous acceptons d'ajouter yà l'espace de noms global principal. Donc, en utilisant cela, nous devons nous assurer que nous n'avons pas d'objet avec le même nom dans notre programme.

Ne jamais utiliser from x import ysi un objet nommé yexiste déjà

Par exemple, dans le osmodule, il y a une méthode open. Mais nous avons même une fonction intégrée appelée open. Donc, ici, nous devrions éviter d'utiliser from os import open.

Nous pouvons même utiliser form x import *, cela importerait toutes les méthodes, classes de ce module dans l'espace de noms global du programme. C'est une mauvaise pratique de programmation. Veuillez l'éviter.

En général, vous devriez éviter from x import ysimplement en raison des problèmes que cela peut causer dans les programmes à grande échelle. Par exemple, vous ne savez jamais si un collègue programmeur peut vouloir créer une nouvelle fonction qui se trouve être le nom de l'une des fonctions existantes. Vous ne savez pas non plus si Python modifiera la bibliothèque à partir de laquelle vous importez des fonctions. Bien que ces problèmes n'existent pas aussi souvent pour les projets solo, comme indiqué précédemment, il s'agit d'une mauvaise pratique de programmation et doit être évitée.