我正在尝试在运行时为一个类创建属性,我目前正在使用这段代码:
class Obj:
pass
attrs = ["a", "b", "c"]
for attr in attrs:
attr_print = lambda self: print(attr)
setattr(Obj, attr, property(attr_print))
o = Obj()
o.a
但是无论我尝试打印什么属性,它总是打印最后一个 in attrs。
感觉 python 在每个循环中都在更改我以前的 lambda。
有没有办法防止这种情况发生?
冉冉说
相关分类