Función Python | dir()

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Sintaxis:

dir ({objeto}) 

Parámetros:

objeto  [opcional]: Toma el nombre del objeto 

Devuelve:

dir () intenta para devolver una lista válida de atributos del objeto al que se llama. Además, la función dir () se comporta de manera bastante diferente con diferentes tipos de objetos, ya que su objetivo es producir el más relevante, en lugar de la información completa.

  • Para objetos de clase, devuelve una lista de nombres de todos los atributos válidos y atributos base también.
  • Para objetos Módulos/Biblioteca, intenta devolver una lista de nombres de todos los atributos contenidos en ese módulo.
  • Si no se pasan parámetros, devuelve una lista de nombres en el ámbito local actual.

Código # 1: con y sin importar bibliotecas externas.

# código de Python3 para demostrar dir ()
# cuando no se pasan parámetros


# Tenga en cuenta que no hemos importado ningún módulo

print ( dir ())



# Ahora vamos a importar dos módulos

import random

importar matemática


# devolver los nombres de los módulos agregados a
# espacio de nombres local que incluye todos los
# existentes como antes

imprimir ( dir ())

Salir:

[`__builtins__`,` __cached__`, `__doc__`,` __file__`, `__loader__`,` __name__`, `__package__`,` __spec__`] [ `__builti ns__`, `__cached__`,` __doc__`, `__file__`,` __loader__`, `__name__`,` __package__`, `__spec__`,` math`, `random`] 

Código # 2:


# Código Python3 para demostrar la función dir()
# cuando un objeto de módulo se pasa como parámetro.


# importar un módulo aleatorio

importar aleatorio



# Lista de impresiones que contienen nombres
# atributos en una función aleatoria

print < clase de código = "simple"> ( "Los contenidos de la biblioteca aleatoria son::" )


# módulo El objeto se pasa como parámetro

print ( dir (aleatorio))

Salida:

Los contenidos de la biblioteca aleatoria son:: [`BPF`,` LOG4`, `NV_MAGICCONST`,` RECIP_BPF`, ` Aleatorio`,` SG_MAGICCONST`, `SystemRandom`, `TWOPI`,` _BuiltinMethodType`, `_MethodTy pe`,` _Sequence`, `_Set`,` __all__`, `__builtins__`,` __cached__`, `__doc__`,` __file__`, `__loader__`,` __name__age__age `,` __spec__`, `_acos`,` _ceil` , `_cos`,` _e`, `_exp`,` _inst`, `_log`,` _pi`, `_random`,` _sha512`, `_sin`, `_ sqrt`,` _test`, `_test_generator`,` _urandom`, `_warn`, `betavariante`, `elección`, `expovariante`, `gammavariante`, `gauss`, `getrandbits`,` getstate`, `lognormvariante`, `normalvariante`, `paretovariante`, `randint` , `random`, `randrange`, `samp le`, `seed`, `setstate`, `shuffle`, `triangular`, `uniforme`, `vonmisesvariate`, `weibullvariate`] 

< b> Código # 3: Objeto pasado como parámetros.


# Cuando el objeto de la lista se pasa como
# parámetros para la función dir ()


# Lista que contiene
# algunos valores aleatorios ​​

geeks = [ "pythonengineering" , " gfg " , " Informática " ,

"Datos Estructuras" , "Algoritmos" ]


# dir() también listará los
# atributos del diccionario

d = < código clase = "simple"> {} # diccionario vacío


# dir() devolverá todos los
# lista de métodos disponibles en th e ámbito local actual

print ( dir (geeks))



# Llamar a dir() con un diccionario
# nombre & quot; d & quot; como parámetro. Devuelve todos los
# métodos dict disponibles en
# alcance local actual

print ( dir ( d))

Salida:

[`__add__`,` __class__`, `__contains__`,` __delattr__`, `__delitem__`,` __dir__`, `__doc__`,` __eq__`, `__format__`,` __ge__`, `__getattribute__`,` __getitem__`, `__gt__`,` __hash__`, `__iadd__ `,` __imul__`, `__init__`,` __iter__`, `__le__`,` __len__`, `__lt__`,` __mul__`, `__lt__` `,` __new__`, `__reduce__`,` __reduce_ex__`, `__repr__` ,` __reversed__`, `__rmul__`,` __setattr__`, `__setitem__`,` __sizeof__`, `__`str__`,` __subclassho, `__subclassho `clear`,` copy`, `count`,` extend`, `index `,` insert`, `pop`,` remove`, `reverse`,` sort`] [`__class__`,` __contains__`, ` __delattr__`, `__delitem__`,` __dir__`, `__doc__`,` __eq__` , `__formato__`, ` __ge__`,` __getattribute__`, `__getitem__`,` __gt__`, `__hash__`,` __init__`, `__iter__`,` __le__`, `__len__`,` __lt__`, `__ne__`,` __new__`, `__reduce ` ,` __reduce_ex__`, `__repr__`,` __setattr__`, `__setitem__`,` __sizeof__`, `__str__`,` __subclasshook__`, `clear`,` copy`, `fromkeys`,` get`, `items`, ` teclas`,` pop`, `popitem`,` setdefault`, `actualizar`, `valores`] 

Código # 4: Definido por el usuario — Un objeto de clase con un método __dir() __ disponible se pasa como parámetro.


< tr>

# Programa de demostración de Python3
# de dir() cuando los objetos definidos por el usuario
# parámetros pasados.


# Crear una clase simple con __dir() __
# método para demostrar que esto funciona

clase Supermercado:


# La función __dir() ___ que enumera todo

# atributos básicos a utilizar.

def __dir __ ( self ):

return [ < clase de código = "cadena"> `nombre_cliente` , ` producto` ,

`cantidad` , < /código> ` precio` , `fecha` ]



# objeto de clase de supermercado personalizado

my_cart = Supermercado ()


# dir() método enumeración

print ( dir (my_cart)) < /código>

Salida:

[`nombre_cliente`, `fecha`, `precio`, `producto`, `cantidad`] 

Aplicaciones:

  • Dir () tiene su propio conjunto de usos . Por lo general, se usa para depurar en programas simples del día a día e incluso en proyectos grandes dirigidos por un equipo de desarrollo. La capacidad de dir () para enumerar todos los atributos de un parámetro pasado es realmente útil cuando se maneja una gran cantidad de clases y funciones por separado.
  • La función dir() también puede listar todos los atributos disponibles para un módulo/lista/diccionario. Así, también nos da información sobre las operaciones que podemos realizar sobre una lista o módulo disponible, lo que puede ser muy útil cuando hay poca información sobre el módulo. También te ayuda a aprender nuevos módulos más rápido.