我希望将'dir‘方法添加到我的对象中,以便当对其调用dir()时,将调用我的函数。
我的代码如下所示:
class c(object):
def __dir__(self):
return ["a"]
print dir(c())
print c().__dir__()只有第二张打印显示"a",而第一张则表现得很正常。我尝试过几种方法,有时起作用,有时不起作用。有什么好办法吗?
编辑:我错了,我的代码比我展示的要复杂。确切地说,我的代码用dir方法创建了一个对象“x”,并编写了:
x.__dir__()很管用,但是
x.__dir__() == dir(x)返回假
发布于 2015-12-14 13:53:38
我怀疑你写的是dir(c),而不是dir(c())。不同之处在于调用类上的dir (dir(c))调用类对象,该类对象本身具有默认__dir__(),这将给出不想要的默认行为。你现在提出的问题(dir(c()))应该是可行的。
https://stackoverflow.com/questions/34268573
复制相似问题