python局部变量()冗余使用

python局部变量()冗余使用,python,Python,嗨,我对使用locals()有点陌生,我研究过locals()的意思是将函数中的变量当作字典。如果这个函数与下面的locals()函数相同,我们会得到一组。我是一个有原则的人,但在这个领域却不是。我将如何简化此操作或任何其他方法 def home_creation(self, property, item): def date(data): return data def rate(data): return data

嗨,我对使用locals()有点陌生,我研究过locals()的意思是将函数中的变量当作字典。如果这个函数与下面的locals()函数相同,我们会得到一组。我是一个有原则的人,但在这个领域却不是。我将如何简化此操作或任何其他方法

def home_creation(self, property, item):
    def date(data):
        return data
    def rate(data):          
        return data

    if property in locals():
        return locals()[property](item)
    else:
        return None

您可以定义自己的字典来限制允许使用的方法:

def home_creation(self, property, item):
    def date(data):
        return data
    def rate(data):          
        return data

    functions = {
        'date': date,
        'rate': rate
    }

    return functions.get(property, lambda: None)(item)

对不起,我不太明白你的意思。顺便说一句,这个函数在一个类下。不要使用
局部变量
,只需定义自己的字典,或者使用
如果elif else
@juanpa.arrivillaga,为什么不使用局部变量呢?如何交替执行?使用函数的
dict
。看乌列尔的answer@juanpa.arrivillaga也看到了这个