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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值