我正在尝试解决一个我不确定在 python 中是否有简单实现的代码战问题。我想通过在它存在之前简单地引用它来动态创建一个类方法属性。这听起来很反直觉。当该属性尚不存在并且没有从外部为其设置值时,如何在方法内部初始化该属性?
class Thing:
def __init__(self, name):
self.name = name
@property
def is_a(self):
setattr(self.is_a,"is_a_{}".format(???),True)
john = Thing("John")
john.is_a.man
print(john.is_a_man) # this is directly from the cw test
如果不先设置它(即john.is_a.man = True
),我看不出这是怎么可能的。并不是说使用 try/except 会是一个好策略,但我什至不知道如何捕获对不存在属性的引用,以便我可以在处理程序中创建它。对此的任何指导将不胜感激。或者,如果使用 Python 根本不可能,那会很高兴知道。