Resumo : neste tutorial, você aprenderá o que é um módulo python e entenderá como ele funciona.
O que é um módulo python
Até agora, você aprendeu que um módulo em Python é um arquivo que contém código Python . Na verdade, tudo em Python é um objeto, incluindo um módulo.
Quando você importa um módulo usando a import
instrução, o Python cria um novo module
objeto. Por exemplo, o seguinte importa o math
módulo integrado:
import math
Linguagem de código: Python ( python )
Python cria uma nova variável chamada math
que faz referência a um module
objeto:
import math
print(math)
Linguagem de código: Python ( python )
A math
é uma variável que faz referência a um objeto de módulo:
<module 'math' (built-in)>
Linguagem de código: Python ( python )
O nome do módulo é math
. O tipo do módulo matemático é a classe module
:
<class 'module'>
Linguagem de código: Python ( python )
Se você olhar para o globals()
, verá a math
variável no namespace global:
import math
from pprint import pprint
pprint(globals())
Linguagem de código: Python ( python )
Saída:
{'__annotations__': {},
'__builtins__': <module 'builtins' (built-in)>,
'__doc__': None,
'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'__name__': '__main__',
'__package__': None,
'__spec__': None,
'math': <module 'math' (built-in)>,
'pprint': <function pprint at 0x0000023FE66491F0>}
Linguagem de código: Python ( python )
Como math
é um objeto, você pode acessar seus atributos. Por exemplo, você pode obter o nome do math
objeto usando o __name__
atributo:
import math
print(math.__name__)
Linguagem de código: Python ( python )
Saída:
math
Linguagem de código: Python ( python )
E você pode acessar todos os atributos do math
objeto através de __dict__
:
import math
from pprint import pprint
pprint(math.__dict__)
Linguagem de código: Python ( python )
Saída:
'__doc__': 'This module provides access to the mathematical functions\n'
'defined by the C standard.',
'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'__name__': 'math',
'__package__': '',
'__spec__': ModuleSpec(name='math', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'),
'acos': <built-in function acos>,
...
Linguagem de código: Python ( python )
E você pode usar math
como uma variável regular. Por exemplo, você pode configurá-lo para None
:
math = None
Linguagem de código: Python ( python )
Isso instrui o Python a destruir o objeto do módulo ao qual a math
variável faz referência.
A matemática é uma instância de ModuleType
:
import math
from types import ModuleType
pprint(isinstance(math,ModuleType))
Linguagem de código: Python ( python )
Saída:
True
Linguagem de código: Python ( python )
O math
módulo é um módulo integrado. Vamos examinar um módulo não integrado.
Módulo não integrado
O abc
módulo permite definir classes base abstratas. Não é um módulo integrado:
import abc
print(abc)
Linguagem de código: Python ( python )
Saída:
<module 'abc' from 'C:\\Python\\lib\\abc.py'>
Linguagem de código: Python ( python )
O abc
módulo é definido em lib\abc.py
arquivo na pasta de instalação do Python. Ao contrário do math
módulo que é um módulo integrado.
O tipo do abc
também é módulo:
import abc
print(type(abc))
Linguagem de código: Python ( python )
Saída:
<class 'module'>
Linguagem de código: Python ( python )
Assim como o módulo matemático, abc
é uma instância de ModuleType
conforme mostrado no exemplo a seguir:
import abc
from types import ModuleType
pprint(isinstance(abc,ModuleType))
Linguagem de código: Python ( python )
Saída:
True
Linguagem de código: Python ( python )
Resumo
- Um módulo Python é um objeto carregado de um arquivo.