それが可能かどうか疑問に思っていますか?
s = "> 4"
if 5 s:
print("Yes it is.")
あなたがしたいeval
。
s = "> 4"
if eval("5"+s):
print("Yes it is.")
に関するドキュメントは次のとおりですeval
。
入力文字列の内容が正確にわからない場合は、eval
非常に安全ではないことに注意してください。注意して使用してください。
これは、 を使用して簡単に実行できますeval()
。ただし、非常に危険eval()
であり、避けるのが最善です。
その他のアイデアについては、Python の安全な式パーサーを参照してください。
s
最良のアプローチは、どこから来たのかによって異なると思います:
1)ユーザー入力の場合は、確かに使いたくないでしょうeval()
。おそらく、式パーサーが最適です。
2)s
がプログラムで設定されている場合は、関数に変換する方がよいでしょう。
pred = lambda x:x > 4
if pred(5):
print("Yes it is.")
あなたが本当にやりたいことは、比較 "> 4" を保存し、それをどこかで使用することであると仮定すると、次のようなことをお勧めします。
import operator
class Comparison(object):
def __init__(self, operator, value):
self.operator = operator
self.value = value
def apply(self, value):
return self.operator(value, self.value)
s = Comparison(operator.gt, 4)
if s.apply(5):
print("Yes it is.")