The syntax of dir()
is:
dir([object])
dir() Parameters
dir()
takes maximum of one object.
- object (optional) -
dir()
attempts to return all attributes of this object.
Return Value from dir()
dir()
tries to return a list of valid attributes of the object.
- If the object has
__dir__()
method, the method will be called and must return the list of attributes. - If the object doesn't have
__dir__()
method, this method tries to find information from the__dict__
attribute (if defined), and from type object. In this case, the list returned fromdir()
may not be complete.
If an object is not passed to dir()
method, it returns the list of names in the current local scope.
Example 1: How dir() works?
number = [1, 2, 3]
print(dir(number))
print('\nReturn Value from empty dir()')
print(dir())
Output
['__add__', '__class__', '__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'] Return Value from empty dir() ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'number']
Example 2: dir() on User-defined Object
class Person:
def __dir__(self):
return ['age', 'name', 'salary']
teacher = Person()
print(dir(teacher))
Output
['age', 'name', 'salary']