função dir() em Python
dir() é uma função embutida poderosa no Python3, que retorna uma lista dos atributos e métodos de qualquer objeto (digamos funções, módulos, strings, listas, dicionários etc.)
Sintaxe:
dir ({objeto})
Parâmetros:
objeto [opcional] : recebe o nome do objeto
Retorna:
dir() tenta retornar uma lista válida de atributos do objeto que é chamado. Além disso, a função dir() se comporta de maneira um tanto diferente com diferentes tipos de objetos, pois visa produzir o mais relevante, ao invés da informação completa.
- Para Class Objects, ele retorna uma lista de nomes de todos os atributos válidos e também atributos básicos.
- Para objetos Módulos / Biblioteca, ele tenta retornar uma lista de nomes de todos os atributos contidos naquele módulo.
- Se nenhum parâmetro for passado, ele retorna uma lista de nomes no escopo local atual.
Código # 1: com e sem importação de bibliotecas externas.
(
dir
())
import
random
import
math
(
dir
())
Resultado :
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__'] ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'matemática', 'aleatório']
Código # 2:
import
random
(
"The contents of the random library are::"
)
(
dir
(random))
Resultado :
O conteúdo da biblioteca aleatória é: ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Aleatório', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_BuiltinMethodType', '_MethodType', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_acos', '_ceil', '_cos', '_e', '_exp', '_inst', '_log', '_pi', '_random', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniforme', 'vonmisesvariate', 'weibullvariate']
Código # 3: o objeto é passado como parâmetros.
geeks
=
[
"geeksforgeeks"
,
"gfg"
,
"Computer Science"
,
"Data Structures"
,
"Algorithms"
]
d
=
{}
(
dir
(geeks))
(
dir
(d))
Resultado :
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'limpar', 'copiar', 'contar', 'estender', 'índice', 'inserir', 'pop', 'remover', 'reverter', 'classificar'] ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'limpar', 'copiar', 'das teclas', 'obter', 'itens', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
Código # 4: Definido pelo usuário - objeto de classe com um método __dir() __ disponível é passado como parâmetro.
class
Supermarket:
def
__dir__(
self
):
return
[
'customer_name'
,
'product'
,
'quantity'
,
'price'
,
'date'
]
my_cart
=
Supermarket()
(
dir
(my_cart))
Resultado :
['nome_do_cliente', 'data', 'preço', 'produto', 'quantidade']
Formulários :
- O dir() tem seu próprio conjunto de usos. Geralmente é usado para fins de depuração em programas simples do dia a dia e até mesmo em grandes projetos assumidos por uma equipe de desenvolvedores. A capacidade de dir() de listar todos os atributos do parâmetro passado é realmente útil ao lidar com muitas classes e funções, separadamente.
- A função dir() também pode listar todos os atributos disponíveis para um módulo / lista / dicionário. Assim, também nos dá informações sobre as operações que podemos realizar com a lista ou módulo disponível, o que pode ser muito útil quando temos pouca ou nenhuma informação sobre o módulo. Também ajuda a conhecer novos módulos mais rapidamente.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva