是否可以在函数中放置namedtuple集合,并根据函数参数返回值?
这可以通过dicts:
def sample_dict(key):
a = {1 : "value1", 2 : "value2"}
return a[key]
print(sample_dict(1)) #prints value1
下面我将namedtuple放在一个函数中,但我不知道是否可以根据作为函数参数给出的namedtuple键从元组返回值:
from collections import namedtuple
def get_namedtuple_values(key):
UsrDetails = namedtuple('UsrDetails', 'name age programming_language')
usr1348 = UsrDetails(name="Mike", age=28, programming_language="Python")
return #...here should return name, age or programming_language values
答案 0 :(得分:0)
正如评论中最初指出的那样,您可以使用getattr
访问namedtuple实例的属性:
from collections import namedtuple
def get_namedtuple_values(key):
UsrDetails = namedtuple('UsrDetails', 'name age programming_language')
usr1348 = UsrDetails(name="Mike", age=28, programming_language="Python")
return getattr(usr1348, key)
print(get_namedtuple_values("name"))
结果:
Mike
答案 1 :(得分:-1)
namedtuple
有一个._asdict()
方法,它返回表示此对象的字典。您可以这样使用它:
def get_namedtuple_values(key):
UsrDetails = namedtuple('UsrDetails', 'name age programming_language')
usr1348 = UsrDetails(name="Mike", age=28, programming_language="Python")
return usr1348._asdict()[key]
请注意,在这种情况下,_asdict
的前导下划线旨在避免与字段名称冲突。它并不意味着私有财产标志。