17
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.)
The syntax of the dir()
method is:
**dir([object])**
The dir()
method takes only one argument as an object.
- **object(optional) – **The object which you want to see the valid attributes.
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.
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']
# 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']
# 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']
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.
17