为了账号安全,请及时绑定邮箱和手机立即绑定

对于一个类来说,dir()方法和__dir__()方法为什么会有不同?

对于一个类来说,dir()方法和__dir__()方法为什么会有不同?

慕桂英3389331 2018-10-23 22:31:13
查看dir方法的文档,里面有这样的描述:If the object supplies a method named __dir__, it will be used; otherwisethe default dir() logic is used and returns也就是说,只要对象本身有__dir__方法,那么实际上两者应该是一致的。但是尝试下面这个例子,发现两者并不是一致的:class A(object):     pass     print(dir(A)) print(A.__dir__(A))__dir__方法会多出一些属性,例如__mro__, __name__等等,这是为什么呢?
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

你这两个print其实并不是一样的,第一个调用的是A的元类的__dir__方法,第二个调用的才是A的__dir__方法。

查看完整回答
反对 回复 2018-10-23
  • 1 回答
  • 0 关注
  • 1040 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信