当前位置:   article > 正文

python中dir用法_python:dir()函数

python的dir()用法

dir([object])

在没有参数的情况下,返回当前本地范围内的名称列表。使用一个参数,尝试返回该对象的有效属性列表。

如果对象有一个名为__dir__()的方法,该方法将被调用,并且必须返回属性列表。这允许实现自定义__getattr__()或__getattribute__()函数的对象来定制方法dir()报告它们的属性。

如果对象不提供__dir__(),函数将尽力从对象的__dict__属性(如果定义了)和它的类型对象中收集信息。结果列表不一定是完整的,并且当对象有自定义__getattr__()时可能是不准确的。

默认的dir()机制与不同类型的对象的行为不同,因为它试图生成最相关的,而不是完整的信息:

如果对象是模块对象,则该列表包含模块属性的名称。

如果对象是类型或类对象,则该列表包含其属性的名称,并递归地包含其基的属性。

否则,该列表包含对象的属性名称、类属性的名称,以及它的类基类的属性的递归。

结果列表按字母顺序排序。

实例:

>>> import struct

>>> dir() # show the names in the module namespace

['__builtins__', '__name__', 'struct']

>>> dir(struct) # show the names in the struct module

['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',

'__initializing__', '__loader__', '__name__', '__package__',

'_clearcache', 'calcsize', 'error', 'pack', 'pack_into',

'unpack', 'unpack_from']

>>> class Shape:

... def __dir__(self):

... return ['area', 'perimeter', 'location']

>>> s = Shape()

>>> dir(s)

['area', 'location', 'perimeter']

请注意,因为dir()主要是作为一个交互提示使用的方便,它试图提供一组有趣的名称,而不是试图提供严格或一致定义的名称集,并且它的详细行为可能会在不同版本之间发生变化。例如,当参数是类时,元类属性不在结果列表中。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/796217
推荐阅读
相关标签
  

闽ICP备14008679号