当前函数中的getattr

2024-04-27 14:39:09 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法在下面得到name的变量?在

def save_info(self):
    name = 'hello'
    var1 = 'other item'
    var2 = 1
    ...
    TV_SERIES_FIELDS_TO_UPDATE = ['name', 'var2', 'var3', 'var4', ...]
    for field in TV_SERIES_FIELDS_TO_UPDATE:
        current_value = getattr_or_none(obj, field)
        new_value = # how do I get the variable of `name` ("hello") ?

给定一个变量名的字符串,如何在当前函数中获得它的值?在


Tags: tonameselfinfofieldhellofieldsvalue
2条回答

你有两个选择

访问局部变量

def save_info(self):
    name = 'hello'
    var1 = 'other item'
    var2 = 1
    ...
    TV_SERIES_FIELDS_TO_UPDATE = ['name', 'var2', 'var3', 'var4', ...]
    for field in TV_SERIES_FIELDS_TO_UPDATE:
        current_value = getattr_or_none(obj, field)
        new_value = locals().get(field)

但如果我是你,我会重写代码并使用字典。在

^{pr2}$

使用^{}

def save_info():
    name = 'hello'
    var1 = 'other item'
    var2 = 1
    TV_SERIES_FIELDS_TO_UPDATE = ['name', 'var1', 'var2']
    for field in TV_SERIES_FIELDS_TO_UPDATE:
        print field, locals()[field]

save_info()

但是,我建议您考虑使用显式字典,而不是使用一堆不相关的变量。在

相关问题 更多 >