python locals()冗余使用

时间:2017-05-15 10:31:39

标签: python

您好我有点使用locals(),我研究过locals()意味着将函数中的变量视为字典。如果这个函数具有与locals()相同的函数,我们有一堆。我是DRY原则的人,但在这方面它不是。我将如何简化这种或其他方式?

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

1 个答案:

答案 0 :(得分:0)

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

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)