gpt4 book ai didi

使用 **kwargs 设置属性时出现 Python3 AttributeError

转载 作者:太空宇宙 更新时间:2023-11-03 14:22:21 26 4
gpt4 key购买 nike

简单地说,我明白为什么我不能像这样使用 **kwargsfor 循环来设置属性:

class Person():
def __init__(self, onevar, *args, **kwargs):
self.onevar = onevar
for k in kwargs:
self.k = kwargs[k]
print(k, self.k)

def run():
ryan = Person('test', 4, 5, 6, name='ryan', age='fifty')
print(ryan.name)

def main():
run()

if __name__=="__main__":
main()

这将返回以下内容:

AttributeError: 'Person' object has no attribute 'name'

有人知道为什么吗?

最佳答案

当您分配 self.k 时,您实际上并不是在创建一个名为 kvalue 的属性,您只是在创建一个重复调用 k 的属性。如果我明白你想做什么,你需要更换

self.k = kwargs[k]

setattr(self, k, kwargs[k])

实现你想要的。

关于使用 **kwargs 设置属性时出现 Python3 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25657112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com