point
* .py
__name__
sample_module.py
def func1(n):
return n
def func2(n):
return n
Dans l'interpréteur Python
>>> import sample_module
>>> sample_module.func1('kawauso')
'kawauso'
point
>>> from sample_module import func1, func2
>>> func1('kawauso')
'kawauso'
>>> func2('kawauso')
'kawauso'
*
pour capturer tous les noms définis par le module sauf ceux commençant par _>>> from sample_module import *
>>> func1('kawauso')
'kawauso'
point
python sample_module.py
__name__
devient __main__
sample_module.py
def func1(n):
return n
def func2(n):
return n
#Ce code ne s'exécute pas lorsqu'il est importé en tant que module
if __name__ == "__main__":
import sys
func1(sys.argv[1])
$ python sample_module.py kawauso
kawauso
point
point
__pycache__
pour un chargement plus rapide des modulesmodule.version.pyc
point
winreg
n'est disponible que sur les systèmes Windowssys
est typique de ces modules (ceci est intégré à tous les interpréteurs Python)sys.ps1
, sys.ps2
ne sont définies que lorsque l'interpréteur est en mode interactif.sys.path
est une liste de chaînes qui spécifient le chemin de recherche du module de l'interpréteursys.path
est soit PYTHONPATH
soit le chemin par défaut intégrédir ()
est utilisée pour vérifier le nom défini par le module (la valeur de retour est une liste de chaînes).>>> import module
>>> dir(module)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'func1', 'func2']
dir ()
retourne une liste de noms définis au niveau courant
>>> hoge = 'hoge'
>>> dir()
['__annotations__', '__builtins__',
'__doc__', '__loader__', '__name__', '__package__', '__spec__', 'hoge',
'module']
>>>
dir ()
ne répertorie pas les noms de fonction et de variable intégrésbuiltins
>>> import builtins
>>> dir(builtins)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError',
'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError',
'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError',
'RecursionError', 'ReferenceError',
'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass',
'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview',
'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
point
__init __. Py
pour traiter un répertoire comme contenant des packages__init __. py
peut être juste un fichier vide, mais vous pouvez également exécuter le code d'initialisation du package et définir la variable __all__
.Exemple de configuration de package
A/ ->Package de haut niveau
__init__.py ->Initialisation du package
A1/ ->Sous-ensemble 1
__init__.py
hoge1.py
hoge2.py
hoge3.py
A2/ ->Sous-ensemble 2
__init__.py
hoge1.py
hoge2.py
hoge3.py
Charger le package
import A.A1.hoge1
#Les références à cela doivent être faites avec le nom complet
A.A1.hoge1.func1()
Il existe également une autre méthode de chargement
Charger le paquet 2
from A.A1 import hoge1
hoge1.func1()
En outre, il existe également un moyen d'importer directement la fonction ou la variable souhaitée.
from A.A1.hoge1 import func1
func1()
point
from A.A1 import *
, si le code de __init __. Py
du package définit la variable __all__
, importez le package qui y est défini.__all__
n'est pas défini, importez uniquement ʻA.A1` et importez tous les noms définis dans le corps du package__init __. Py
sont également importés__init__.py
__all__ = ["module1", "module2", "module3"]
module4 = func4() #module4 est également importé
#les modules d'écho et surround sont importés
import sound.effects.echo
import sound.effects.surround
from sound.effects import *
point
__main__
from . import echo #Même hiérarchie
from .. import formats #Un niveau supérieur
from ..filters import equalizer #Dans le sous-module des filtres d'un niveau supérieur
point
__path__
, cela affecte la recherche des modules et sous-packages inclus dans le package.Recommended Posts