python中的助手函数dir()
中文说明:不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将限度地收集参数信息。
参数object: 对象、变量、类型。
版本:该函数在python各个版本中都有,但是每个版本中显示的属性细节有所不同。使用时注意区别。
例如
>>>import struct >>>dir() # show the names in the module namespace ['__builtins__','__doc__','__name__','struct'] >>>dir(struct) # show the names in the struct module ['Struct','__builtins__','__doc__','__file__','__name__', '__package__','_clearcache','calcsize','error','pack','pack_into', 'unpack','unpack_from'] >>>class Shape(object): def __dir__(self): return ['area','perimeter','location'] >>> s= Shape() >>>dir(s)
['area', 'perimeter', 'location'] Note Because dir() is supplied primarily as a convenience for use at an interactive prompt, it tries to supply an interesting set of names more than it tries to supply a rigorously or consistently defined set of names, and its detailed behavior may change across releases. For example, metaclass attributes are not in the result list when the argument is a class.
代码实例
>>>dir() ['__builtins__','__doc__','__name__','__package__'] >>>import struct >>>dir() ['__builtins__','__doc__','__name__','__package__','struct'] >>>dir(struct) ['Struct','__builtins__','__doc__','__file__','__name__','__package__','_clearcache','calcsize','error','pack', 'pack_into','unpack','unpack_from'] >>>class Person(object): ... def __dir__(self): ... return ["name","age","country"] ... >>>dir(Person) ['__class__','__delattr__','__dict__','__dir__','__doc__','__format__','__getattribute__','__hash__','__init__', '__module__','__new__','__reduce__','__reduce_ex__','__repr__','__setattr__','__sizeof__','__str__','__subclasshook__', '__weakref__'] >>> tom= Person() >>>dir(tom) ['age','country','name']