我正在做嵌套对象,并且我能够执行点选项卡自动完成来导航到对象的下一个级别。我知道调用了__getattribute__
,如果在self.__dict__
中找不到该名称,则将调用__getattr__
。如果我错了,请纠正我。
是否可以在覆盖__getattribute__
时更新self.__dict__
,并且当我执行点选项卡时,它会显示要自动完成的更新选项?
我目前的实现:
def __getattribute__(self, name):
if condition:
object.__setattr__(self, '__dict__', dictionary to be added)
else:
return object.__getattribute__(self, name)
我可以添加对象,但它在第一个选项卡中不可用,只在第二个选项卡中可用。
我试图实现的是让选项卡在第一个选项卡上显示更新的对象/变量。我想的是return
,而不仅仅是__setattr__
,但我不知道该返回什么。欢迎任何指针。
重写__dir__
,如在pyreadline中所称。