📜  Python dir()

📅  最后修改于: 2020-09-20 03:58:23             🧑  作者: Mango

dir()方法尝试返回对象的有效属性列表。

dir()的语法为:

dir([object])

dir()参数

dir()最多容纳一个对象。

  1. 对象(可选) dir()尝试返回此对象的所有属性。

从dir()返回值

dir()尝试返回对象的有效属性列表。

  1. 如果对象具有__dir__()方法,则该方法将被调用,并且必须返回属性列表。
  2. 如果对象没有__dir__()方法,则此方法尝试从__dict__属性(如果已定义)和类型object中查找信息。在这种情况下,从dir()返回的列表可能不完整。

如果没有将对象传递给dir()方法,它将返回当前本地范围内的名称列表。

示例1:dir()如何工作?

number = [1, 2, 3]
print(dir(number))

print('\nReturn Value from empty dir()')
print(dir())

输出

['__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']

示例2:用户定义的对象上的dir()

class Person:
  def __dir__(self):
    return ['age', 'name', 'salary']
    

teacher = Person()
print(dir(teacher))

输出

['age', 'name', 'salary']