Python的?...动态调用嵌套函数

bur*_*rn5 0 python locals nested-function

这是pythonic实现吗?

我正在使用包装器从字符串参数动态调用嵌套函数,以减少调用不存在的函数的机会.这是一个例子,我想对arg1和arg2进行不同的比较(根据==,> =,<等等)...

class ComparisonClass(object):
    def__init__(self):
        pass

    def comparison(self,arg1,arg2,comparison):
        def equal_to():               
            pass
        def greater_than():
            pass
        def less_than():
            pass

        return locals()[comparison]()

    def comparison_equal_to(self,arg1,arg2):
        return self.comparison(arg1,arg2,'equal_to')

    def comparison_greater_than(self,arg1,arg2):
        return self.comparison(arg1,arg2,'greater_than')

    def comparison_less_than(self,arg1,arg2):
        return self.comparison(arg1,arg2,'less_than')
Run Code Online (Sandbox Code Playgroud)

Kar*_*tel 6

这里的实现无关紧要,因为你想要实现的东西不是Pythonic.

在Python中,我们使用__eq__一系列方法进行比较,标准库中存在用于根据其他方法实现其中一些方法的工具.