O que é um módulo Python

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 importinstrução, o Python cria um novo moduleobjeto. Por exemplo, o seguinte importa o mathmódulo integrado:

import mathLinguagem de código:  Python  ( python )

Python cria uma nova variável chamada mathque faz referência a um moduleobjeto:

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 mathvariá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 mathobjeto usando o __name__atributo:

import math

print(math.__name__)Linguagem de código:  Python  ( python )

Saída:

mathLinguagem de código:  Python  ( python )

E você pode acessar todos os atributos do mathobjeto 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 mathcomo uma variável regular. Por exemplo, você pode configurá-lo para None:

math = NoneLinguagem de código:  Python  ( python )

Isso instrui o Python a destruir o objeto do módulo ao qual a mathvariá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:

TrueLinguagem de código:  Python  ( python )

O mathmódulo é um módulo integrado. Vamos examinar um módulo não integrado.

Módulo não integrado

O abcmó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 abcmódulo é definido em lib\abc.pyarquivo na pasta de instalação do Python. Ao contrário do mathmódulo que é um módulo integrado.

O tipo do abctambé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 ModuleTypeconforme mostrado no exemplo a seguir:

import abc
from types import ModuleType

pprint(isinstance(abc,ModuleType))Linguagem de código:  Python  ( python )

Saída:

TrueLinguagem de código:  Python  ( python )

Resumo

  • Um módulo Python é um objeto carregado de um arquivo.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *