gpt4 book ai didi

python - 在 Python 中一次为一个对象分配多个属性

转载 作者:行者123 更新时间:2023-11-28 22:24:44 24 4
gpt4 key购买 nike

我有一个函数

def foo(a):
first_thing = 'first' + a
second_foo = 'second' + a + 'bar'
return first_thing, second_foo

返回元组。我怎样才能实现类似的东西

class Thing(object):
def __init__(self, a):
first_thing, second_foo = foo(a)
self.first_thing = first_thing
self.second_foo = second_foo

以一种更好、更自动化的方式?

我尝试过:

def __init__(self, a):
for key, value in foo(a):
setattr(self, key, value)

但无法正确解包。

最佳答案

您的函数返回值的元组(二元组),而不是二元组的可迭代对象。您正在迭代包含字符串的元组,并且您无法将这些返回的字符串解压缩为两个。

您可以坚持原来的解决方案或将项目直接解包到实例属性中:

self.first_thing, self.second_foo = foo(a)

对于许多属性:

_ATTR_NAMES = ('first_thing', 'second_foo')

class Thing(object)
def __init__(self, a):
for key, value in zip(_ATTR_NAMES, foo(a)):
setattr(self, key, value)

关于python - 在 Python 中一次为一个对象分配多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46140122/

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