dir()方法尝试返回对象的有效属性列表。
dir()的语法为:
dir([object])
dir()最多容纳一个对象。
对象(可选)-dir()尝试返回此对象的所有属性。
dir()尝试返回对象的有效属性列表。
如果对象具有__dir__()方法,则将调用该方法,并且必须返回属性列表。
如果对象没有__dir__() 方法,则此方法尝试从__dict__属性(如果已定义)和类型对象中查找信息。在这种情况下,从dir()返回的列表可能不完整。
如果没有将object传递给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__', '__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() ['__builtins__', 'number']
class Person: def __dir__(self): return ['age', 'name', 'salary'] teacher = Person() print(dir(teacher))
运行该程序时,输出为:
['age', 'name', 'salary']