Python | dir () function

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

Syntax :

 dir ({object}) 

Parameters :

  object   [optional] : Takes object name 

Returns:

dir () tries to return a valid list of attributes of the object it is called upon. Also, dir () function behaves rather differently with different type of objects, as it aims to produce the most relevant one, rather than the complete information.

  • For Class Objects, it returns a list of names of all the valid attributes and base attributes as well.
  • For Modules / Library objects, it tries to return a list of names of all the attributes, contained in that module.
  • If no parameters are passed it returns a list of names in the current local scope.

Code # 1: with and without importing external libraries.

# Python3 code to demonstrate dir ()
# when no parameters are passed


# Please note that we have not imported any modules

print ( dir ())


# Now let’s import two modules

import random

import math


# return module names added to
# local namespace including all
# existing as earlier

print ( dir ())

Exit:

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

Code # 2:

# Python3 code to demonstrate the dir () function
# when a module object is passed as a parameter.


# import a random module

import random


# List of printouts containing names
# attributes in a random function

print ( "The contents of random library are ::" )


# module The object is passed as a parameter

print ( dir (random))

Output:

 The contents of random library are :: [’BPF’,’ LOG4’, ’NV_MAGICCONST’,’ RECIP_BPF’, ’Random’,’ SG_MAGICCONST’, ’SystemRandom’, ’TWOPI’,’ _BuiltinMethodType’, ’_MethodType’,’ _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’,’ betavariate’, ’choice’,’ expovariate’, ’gammavariate’,’ gauss’, ’getrandbits’,’ getstate’, ’lognormvariate ’,’ normalvariate’, ’paretovariate’,’ randint’, ’random’,’ randrange’, ’samp le’, ’seed’,’ setstate’, ’shuffle’,’ triangular’, ’uniform’,’ vonmisesvariate’, ’weibullvariate’] 

Code # 3: Object passed as parameters.

# When the list object is passed as
# parameters for the dir function ()


# List containing
# some random values ‚Äã‚Äã

geeks = [ "pythonengineering" , " gfg " , " Computer Science " ,

"Data Structures" , " Algorithms " ]


# dir () will also list the shared
# dictionary attributes

d = {} # empty dictionary


# dir () will return all available
# list of methods in the current local scope

print ( dir (geeks))


# Call dir () with a dictionary
# name & quot; d & quot; as a parameter. Return all
# available dict methods in
# current local scope

print ( dir (d))

Output:

 [’__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__’, ’__format__’, ’__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’, ’keys’,’ pop’, ’popitem’,’ setdefault’, ’update’,’ values’] 

Code # 4: User defined — A class object with an available __dir () __ method is passed as a parameter.

# Python3 demonstration program
# of dir () when user-defined objects
# parameters passed.


# Create a simple class with __dir () __
# method to demonstrate this works

class Supermarket:

# The __dir () ___ function that lists everything

# basic attributes to be used.

def __dir __ ( self ):

return [ ’customer_name’ , ’ product’ ,

’quantity’ , ’ price’ , ’date’ ]


# custom supermarket class object

my_cart = Supermarket ()


# dir () method enumeration

print ( dir (my_cart))

Output:

 [’customer_name’ , ’date’,’ price’, ’product’,’ quantity’] 

Applications:

  • Dir () has its own set of uses. It is typically used for debugging in simple day-to-day programs and even in large projects run by a development team. The dir () ability to list all the attributes of a passed parameter is really useful when handling a large number of classes and functions separately.
  • The dir () function can also list all the available attributes for a module / list / dictionary. Thus, it also gives us information about the operations we can perform on an available list or module, which can be very useful when there is little information about the module. It also helps you learn new modules faster.