Explication détaillée des modules personnalisés de Python


avant-propos

  En Python, un module personnalisé a deux fonctions : l'une consiste à normaliser le code, ce qui facilite la lecture du code, et l'autre consiste à faciliter l'utilisation par d'autres programmes du code qui a été écrit pour améliorer l'efficacité du développement.
  L'implémentation d'un module personnalisé est principalement divisée en deux parties, l'une consiste à créer un module et l'autre à importer un module .


1. Créer un module

  Lors de la création d'un module, vous pouvez écrire le code pertinent dans le module (définition de variable et définition de fonction, etc.) dans un fichier séparé, et nommer le fichier sous la forme "nom du module + .py " .

注意:创建模块时,设置的模块名不能是Python自带的标准模块名称(比如time、math、os等等)。

  Par exemple, créez un module dédié au téléchargement d'images et nommez-le download_picture.py, où download_picture est le nom du module et .py est l'extension. Une partie du code est la suivante :

    def requests_image_url(self, image_url, image_title):
        '''
            5.对图片地址发起请求
        '''
        response_second = self.session.get(image_url).content
        self.create_dir(response_second, image_title)

    def create_dir(self, response_second, image_title):
        '''
            6.创建文件夹
        '''
        if not os.path.exists(self.keyword):
            os.mkdir(self.keyword)
        self.save_images(response_second, image_title)

    def save_images(self, response_second, image_title):
        '''
            7.保存图片
        '''
        try:
            with open('{}/{}.jpg'.format(self.keyword, image_title), 'wb') as f:
                f.write(response_second)
            number = len(os.listdir(r'C:\Users\administrator0\Desktop\666\全网图片抓取\{}'.format(self.keyword)))
            print('第{}张图片{}下载成功'.format(number, image_title))
        except Exception as e:
            print('图片{}下载成功'.format(image_title))

注意:模块文件的扩展名必须是 “.py”


2. Utilisez l'instruction d'importation pour importer des modules

  Une fois qu'un module est créé, il peut être utilisé dans d'autres programmes. Pour utiliser un module, vous devez charger le code dans le module en tant que module, ce qui peut être réalisé à l'aide de l' instruction import . La syntaxe de base de l'instruction d'importation est la suivante :

import modulename [as alias]

  où le nom du module estLe nom du module à importer;[comme alias] estun alias pour le module, le module est également disponible via cet alias. Ce qui suit importera le module download_picture.py
  qui vient d'être créé pour télécharger des images et exécutera la méthode dans ce module. Créez un fichier nommé 1.py dans le même répertoire que le fichier du module download_picture.py. Dans ce fichier, importez le module download_picture et exécutez la fonction main() dans la classe QwtpSpider() de ce module. Le code est le suivant :

import download_picture  # 导入download_picture模块
picture = download_picture.QwtpSpider()  # 调用模块中的QwtpSpider()类
picture.main()  # 执行该类的main()方法

  Exécutez le code ci-dessus pour afficher les résultats suivants.

insérez la description de l'image ici

Note : Lors de l'appel d'une variable, d'une fonction ou d'une classe dans un module, vous devez ajouter " nom du module. " comme préfixe avant le nom de la variable, le nom de la fonction ou le nom de la classe. Par exemple, download_picture.QwtpSpider dans le code ci-dessus signifie appeler la classe QwtpSpider() dans le module download_picture.

Si le nom du module est long et difficile à retenir, vous pouvez utiliser le mot-clé as pour   lui définir un alias lors de l'importation du module , puis vous pouvez utiliser cet alias pour appeler des variables, des fonctions et des classes dans le module. Par exemple, modifiez le code ci-dessus qui importe le module comme suit.

import download_picture as d  # 导入download_picture模块并设置别名为d

  Ensuite, lors de l'appel de la classe QwtpSpider() dans le module download_picture, vous pouvez utiliser le code suivant :

picture = d.QwtpSpider()  # 调用模块中的QwtpSpider()类

  En utilisant également l'instruction d'importationPlusieurs modules peuvent être importés à la fois, lors de l'importation de plusieurs modules, entre les noms de modulesUtilisez une virgule "," pour séparer. Par exemple, trois fichiers de module, download_picture, download_audio et download_video, sont créés respectivement. Pour importer les trois fichiers de module, vous pouvez utiliser le code suivant :

import download_picture, download_audio, download_video

3. Utilisez l'instruction from...import pour importer des modules

  Lorsque vous utilisez l'instruction import pour importer un module, chaque exécution d'une instruction import créera un nouvel espace de noms et exécutera toutes les instructions liées au fichier .py dans cet espace de noms. Lors de l'exécution, vous devez ajouter le préfixe "nom du module." avant le nom spécifique de la variable, de la fonction et de la classe. Si vous ne souhaitez pas créer un nouvel espace de noms chaque fois que vous importez un module, mais importez des définitions spécifiques dans l'espace de noms actuel, vous pouvez utiliser l' instruction from...import . Après avoir importé un module à l'aide de l'instruction from...import,Pas besoin d'ajouter un préfixe, accédez directement via des variables spécifiques, des fonctions et des noms de classeC'est ça.

Explication : Un espace de noms peut être compris comme un espace qui enregistre la correspondance entre les noms d'objets et les objets. À l'heure actuelle, la plupart des espaces de noms de Python sont implémentés via des dictionnaires (dict). Parmi eux, la clé est un identifiant ; la valeur est un objet spécifique. Par exemple, clé est le nom de la variable et valeur est la valeur de la variable.

  Le format de syntaxe de la syntaxe from…import est le suivant :

from modelname import member

Descriptif paramètre :

  • modelname : Le nom du module, qui est sensible à la casse et doit être cohérent avec la casse du nom de module défini lors de la définition du module.
  • membre : utilisé pour spécifier les variables, les fonctions ou les classes à importer. Plusieurs définitions (variables, fonctions ou classes, etc.) peuvent être importées en même temps, et chaque définition est séparée par une virgule ",". Si vous souhaitez importer toutes les définitions, vous pouvez également utiliser l'astérisque générique "*" à la place.

  Par exemple, les deux instructions suivantes peuvent importer la définition spécifiée à partir du module.

from download_picture import QwtpSpider  # 导入模块中的QwtpSpider类
from download_picture import *  # 导入模块中的全部类,变量,函数

4. Répertoire de recherche des modules

  Lorsque vous utilisez l'instruction import pour importer un module, par défaut, le chemin du module est recherché dans l'ordre suivant.

  1. Rechercher dans le répertoire courant (c'est-à-dire le répertoire où se trouve le fichier de script Python exécuté)
  2. Accédez à chaque répertoire sous PYTHONPATH (variable d'environnement) pour trouver
  3. Accédez au répertoire d'installation par défaut de Python pour trouver

  Les emplacements spécifiques des répertoires ci-dessus sont stockés dans l'attribut sys.path du module standard sys . Le module sys est une interface permettant d'interagir avec l'interpréteur Python. Le répertoire spécifique que le module interroge peut être généré via le code suivant.

import sys
print(sys.path)

  L'exécution du code ci-dessus affichera le résultat comme indiqué dans la figure ci-dessous.

insérez la description de l'image ici

  Comme on peut le voir sur la figure ci-dessus, lors de l'importation d'un module, il suit les trois séquences de recherche de chemin ci-dessus pour savoir si le module existe sur la machine. Recherchez d'abord le répertoire où se trouve le fichier Python actuel ; sinon, recherchez-le dans le répertoire des variables d'environnement de la configuration Python ; sinon, recherchez-le dans le répertoire d'installation de Python. S'il n'y en a pas, une erreur sera signalée lors de l'importation du module, comme indiqué dans la figure ci-dessous.

insérez la description de l'image ici

  À ce stade, nous pouvons ajouter le répertoire spécifié à sys.path des trois manières suivantes. Avant de l'ajouter, examinons le code de fonction spécifique dans le téléchargement du module personnalisé, imprimez simplement une phrase, comme indiqué dans la figure ci-dessous.

insérez la description de l'image ici

1. Ajout temporaire

  Ajoutez-le temporairement , c'est-à-dire ajoutez-le dans le fichier Python qui importe le module. Par exemple, si nous voulons importer le module de téléchargement dans le fichier 1.py actuel, nous devons d'abord trouver le chemin du fichier download.py "C:\Users\administrator0\Desktop\tool", ajouter le chemin à sys .path, puis print Output la valeur de sys.path, le code et le résultat de l'exécution sont illustrés dans la figure ci-dessous.

insérez la description de l'image ici

  Importez ensuite le module de téléchargement dans le code pour qu'il s'exécute correctement, comme illustré dans la figure ci-dessous.

insérez la description de l'image ici

Note : Le répertoire ajouté par cette méthode n'est valide que dans la fenêtre qui exécute le fichier en cours, et les autres fenêtres sont invalides, on l'appelle donc ajout temporaire. Par exemple, comme le montre la figure ci-dessous.

insérez la description de l'image ici

2. Ajouter un fichier .pth (recommandé)

  Dans le sous-répertoire Lib\site-packages sous le répertoire d'installation de Python (par exemple, si le Python du blogueur est installé dans le répertoire E:\anaconda3, le chemin est alors E:\anaconda3\Lib\site-packages), comme indiqué dans la figure ci-dessous.

insérez la description de l'image ici

Ouvrez le répertoire et créez un fichier avec   l' extension .pth , et le nom du fichier est arbitraire. Créez un fichier a.pth ici, et ajoutez le répertoire où se trouve le module à importer dans ce fichier. Par exemple, ajoutez le répertoire du module C:\Users\administrator0\Desktop\tool au fichier a.pth et enregistrez-le. Bien sûr, vous pouvez également créer d'abord un nouveau document texte et y écrire C:\Users\administrator0\Desktop\tool, comme indiqué dans la figure ci-dessous.

insérez la description de l'image ici
  Après l'enregistrement, modifiez l'extension de fichier en .pth, comme indiqué dans la figure ci-dessous.

insérez la description de l'image ici

注意:创建 .pth 文件后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起作用

  Ensuite, le module de téléchargement peut être importé dans n'importe quel fichier et utilisé normalement. Comme indiqué ci-dessous.

insérez la description de l'image ici

Remarque : Le répertoire ajouté par cette méthode est uniquement dans leversion actuelleIl est valide en Python, si d'autres versions de Python sont installées et que l'interpréteur est changé pour une autre version, le répertoire sera invalide.

3. Ajouter à la variable d'environnement PYTHONPATH (recommandé)

  Ouvrez la boîte de dialogue "Variables d'environnement" (voir ci-dessous pour plus de détails).
  Tout d'abord, appuyez simultanément sur les touches Win + R pour ouvrir la boîte de dialogue d'exécution, entrez sysdm.cpl dedans et cliquez sur OK , comme indiqué dans la figure ci-dessous.

insérez la description de l'image ici

  Ensuite, cliquez sur Avancé , puis cliquez sur Variables d'environnement

insérez la description de l'image ici

  Vérifiez s'il existe une variable d'environnement système PYTHONPATH dans la boîte de dialogue, sinon, créez-en une d'abord, la méthode de création est la suivante.
  Cliquez d'abord sur Nouveau , comme illustré dans la figure ci-dessous.

insérez la description de l'image ici

Entrez le nom de la variable PYTHONPATH   dans la boîte de dialogue contextuelle Nouvelle variable système , et la valeur de la variable d'entrée est le chemin du module personnalisé . Le chemin du téléchargement du module que j'ai défini est C:\Users\administrator0\Desktop\tool, écrivez dans, puis suivez Cliquez sur OK ,N'oubliez pas qu'il y en a trois à cliquer,Comme indiqué ci-dessous.

insérez la description de l'image ici

注意:在环境变量中添加模块目录后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起作用。

  Ensuite, le module de téléchargement peut être importé dans n'importe quel fichier et utilisé normalement. Comme indiqué ci-dessous.

insérez la description de l'image ici

Remarque : Le répertoire ajouté par cette méthode se trouve dansdifférentes versionsPartagé en Python.

Je suppose que tu aimes

Origine blog.csdn.net/2201_75641637/article/details/129793383
conseillé
Classement