これはPythonの実装ですか?Pythonic? ...入れ子関数を動的に呼び出す
私は、存在しない関数を呼び出すの機会を減らすためにラッパーを持つ文字列引数から動的にネストされた関数を呼び出しています。非常に事はあなたがISNを実装することを求めるので、ここで私は(==、> =、<などの面で)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')
あなたの答えをありがとう!私はかなりPythonを初めて使い、__eq__ファミリに精通していません。もちろん、私はドキュメンテーションを探しますが、それが何であるか簡単に説明してもらえますか?私は比較にはるかがあることを追加した場合、それはまた、役立つかもしれない(すなわちGREATER_THAN()尋ねるよりも多くを必要とする「引数1> arg2にある」)が、私は簡単にするため、そのここでは省略しています。私は本当に比較を指定してはいけないと思って、それが動的にネストされた関数を呼び出すのpythonic実装だったかどうか尋ねただけですか?私がポイントをどこにも見逃しているなら、お詫び! – burn5
私はほとんどの場合、「動的にネストされた関数を呼び出す」というフレーズの意味を理解するのが難しいです。私がそれを理解する限り、ダニエルの答えはそれ以上のものです。 '__eq__' et。その他のドキュメント:http://docs.python.org/reference/datamodel.html#object.__lt__ –