在使用__getattr__方法时遇到的问题 请求大神指教
class B:def __getattr__(self, attrname):
self.attrname = 956
>>> b = B()
>>> b.name
>>> b.name
>>> b.__dict__
{'attrname': 956}
请问各位大佬 为什么结果为 b.attrname = 956;不应该是b.name = 956吗
求求了 想了好久不能理解 >>> class D:
def __getattr__(self, attrname):
self.attrname = 956
>>> d = D()
>>> d.name
>>> d.ddddd
>>> d.msgvdfngdchnujnjdhsjfu
>>> d.attrname
956
>>>
其实是很正常的,因为你写的是:
self.attrname = 956
所以name是不出结果的 hveagle 发表于 2022-8-23 09:54
其实是很正常的,因为你写的是:
所以name是不出结果的
attrname 不是形式参数吗 我想要的效果是: 当对象没有某个属性时候 就为这个属性赋值为956
比如他没有name属性 我就想 让他的name = 956;他没有age属性 就让他的age属性为956
但是这个为什么只能设置attrname呢 我不明白的地方就在这里 能不能帮我解答一下 谢谢你 本帖最后由 hveagle 于 2022-8-23 13:24 编辑
你的代码传入的参数attrname是没用的,而里面写的是
self.attrname = 956
就是把这个对象赋值了1个叫attrname的属性,赋值为956,传入的参数在这里是没用的 你找找其他人吧 遇率遇(哨子声)@漫星闪 @青出于蓝 @人造人 @不二如是 hveagle 发表于 2022-8-23 10:17
你找找其他人吧
谢谢您 已经解决谢谢
页:
[1]