Python dir()

ItsMyCode |
The dir() method is an inbuilt function in Python which returns all the valid list of attributes and methods of any object. ( functions , dict , list , string , tuple etc.)
dir() Syntax
The syntax of the dir() method is:
**dir([object])**
dir() Parameters
The dir() method takes only one argument as an object.
  • **object(optional) – **The object which you want to see the valid attributes.
  • dir() Return Value
    dir() method returns the valid list of attributes for a given object.
    The dir() function behaves differently for different types of objects. It aims to return the relevant information rather than complete information.
  • For Class Objects – Returns all the names of valid attributes and the base attributes of the class object.
  • F or Modules or Library – It tries to return a list of names of all the attributes in that module.
  • If no parameter is passed to the dir() method, it returns a list of names in the current local scope.
  • Example 1: How dir() works?
    The below example provides all the valid attributes of a list object.
    # dir() method for list
    lst_numbers = [1, 2, 3, 4, 5]
    print(dir(lst_numbers))
    Output
    [' __add__', ' __class__', ' __class_getitem__', ' __contains__', ' __delattr__',
     ' __delitem__', ' __dir__', ' __doc__', ' __eq__', ' __format__', ' __ge__', 
    ' __getattribute__', ' __getitem__', ' __gt__', ' __hash__', ' __iadd__', ' __imul__', 
    ' __init__', ' __init_subclass__', ' __iter__', ' __le__', ' __len__', ' __lt__', 
    ' __mul__', ' __ne__', ' __new__', ' __reduce__', ' __reduce_ex__', ' __repr__', 
    ' __reversed__', ' __rmul__', ' __setattr__', ' __setitem__', ' __sizeof__', ' __str__',
     ' __subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 
    'insert', 'pop', 'remove', 'reverse', 'sort']
    Example 2: When no parameters are passed to dir() method with and without importing external libraries.
    If no parameter is passed to the dir() method, it returns a list of names in the current local scope.
  • In the first case, we have not imported any module, and dir() methods return the default names.
  • In the second case, we have imported two modules(random and math), and the dir() method returns these module names as it is added to the local namespace.
  • # Python3 code to demonstrate dir()
    # when no parameters are passed to dir()
    
    # Note that we have not imported any modules
    print(dir())
    
    # when modules are imported
    import random
    import math
    
    # in this case dir() returns the module names added to the localnamespace
    print(dir())
    Output
    [' __annotations__', ' __builtins__', ' __cached__', ' __doc__', ' __file__',
     ' __loader__', ' __name__', ' __package__', ' __spec__']
    
    [' __annotations__', ' __builtins__', ' __cached__', ' __doc__', ' __file__',
     ' __loader__', ' __name__', ' __package__', ' __spec__', 'math', 'random']
    Example 3: When a module object is passed as a parameter?
    # Python3 code to demonstrate dir()
    # when module objects are passed to dir()
    
    import random
    import math
    
    print(dir(random))
    print(dir(math))
    Output
    ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST',
     'SystemRandom', 'TWOPI', '_Sequence', '_Set', ' __all__', ' __builtins__',
     ' __cached__', ' __doc__', ' __file__', ' __loader__', ' __name__', ' __package__',
     ' __spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp',
     '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin',
     '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate',
     'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits',
     'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes',
     'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle',
     'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
    
    [' __doc__', ' __loader__', ' __name__', ' __package__', ' __spec__', 'acos', 'acosh',
     'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos',
     'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs',
     'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf',
     'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma',
     'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow',
     'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau',
     'trunc', 'ulp']
    Example 4: dir() on User-defined Object
    # Python3 code to demonstrate dir()
    # on user defined object
    
    class Employee:
        # Function __dir()___ which list all
        # the base attributes to be used.
      def __dir__ (self):
        return ['Id', 'FirstName', 'LastName', 'Salary','JoiningDate']
    
    # user-defined object of class Employee
    emp = Employee()
    
    # listing out the dir() method for the userdefined object
    print(dir(emp))
    Output
    ['FirstName', 'Id', 'JoiningDate', 'LastName', 'Salary']
    Conclusion
    The dir() function will help mainly in debugging the application. In the case of the large project, it will be really useful for developers when handling a lot of classes and functions separately, and dir() will list out all the attributes of the object passed to it.
    The post Python dir() appeared first on ItsMyCode.

    26

    This website collects cookies to deliver better user experience

    Python dir()