Python dir()

The dir() method tries to return a list of valid attributes of the object.

The syntax of dir() is:

dir([object])

1. dir() Parameters

dir() takes maximum of one object.

  • object (optional) – dir() attempts to return all attributes of this object.

2. 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 from dir() may not be complete.

If an object is not passed to dir() method, it returns the list of names in the current local scope.

3. 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']

4. 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']

4 Trackbacks / Pingbacks

  1. Python eval() - VietMX's Blog
  2. Python exec() - VietMX's Blog
  3. Python object() - VietMX's Blog
  4. Python setattr() - VietMX's Blog

Comments are closed.