如果可以>=通过参数传递符号:如:
def example():
num1 = 0
num2 = 5
sign1 = >=
sign2 = <=
test(num1, num2, sign1, sign2)
def test(num1, num2, sign1):
while num1 sign1 0 and num2 sign2 5:
print('whatever')
num1+=1
num2-=1
Run Code Online (Sandbox Code Playgroud)
显然这不是我真正想要做的;我只是想知道是否有可能......
是的,可以使用操作员模块。但是,它们被视为函数而不是字符串,这在您最初的尝试中似乎是这样。
from operator import le, ge
def example():
num1 = 0
num2 = 5
sign1 = ge
sign2 = le
def test(num1, num2, sign1):
while sign1(num1, 0) and sign2(num2, 5):
print('whatever')
num1+=1
num2-=1
Run Code Online (Sandbox Code Playgroud)