导语:
本文主要介绍了关于python入门必会的助手函数:dir()函数的相关知识,包括dir python,以及python内建函数这些编程知识,希望对大家有参考作用。
今天我们来看一个非常重要的函数:dir()
中文说明:当没有参数时,返回当前范围内的变量、方法和定义类型列表;当有参数时,返回参数的属性和方法列表。如果参数包含方法 __dir__(),将调用该方法。如果参数中不包含__dir__(),该方法将限制参数信息的收集。
参数object: 对象、变量、类型。
version:该函数在python所有版本中都有,但每个版本显示的属性细节不同。使用时要注意区别。
英文说明:
dir([object])
Without arguments, return the list of names in the current local scope. With an argument, attempt to return a list of
valid attributes for that object.
If the object has a method named __dir__(), this method will be called and must return the list of attributes. This
allows objects that implement a custom __getattr__() or __getattribute__() function to customize the way dir()
reports their attributes.
If the object does not provide __dir__(), the function tries its best to gather information from the object’
s __dict__ attribute, if defined, and from its type object. The resulting list is not necessarily complete, and may be
inaccurate when the object has a custom __getattr__().
The default dir() mechanism behaves differently with different types of objects, as it attempts to produce the most
relevant, rather than complete, information:
If the object is a module object, the list contains the names of the module’s attributes.
If the object is a type or class object, the list contains the names of its attributes, and recursively of the
attributes of its bases.
Otherwise, the list contains the object’s attributes’ names, the names of its class’s attributes, and recursively
of the attributes of its class’s base classes.
例如
>>>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']
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何用python查看网页代码01/11
- ♥ Ubuntu如何切换python版本?01/06
- ♥ python编程删除字符的方法01/10
- ♥ Python bool 布尔类型11/05
- ♥ anaconda 和 pycharm 有什么区别?09/09
- ♥ Python死锁的原因11/24
内容反馈