能否将逻辑比较条件存储在变量中实现动态条件判断
可以实现,核心思路是把比较逻辑封装成可调用对象存储在变量中,Python里有两种常用的实现方式:
方法1:使用operator标准库
Python的operator模块内置了所有运算符对应的可调用方法,直接赋值给变量即可使用:
import operator a = 33 b = 200 # 按需切换x的赋值即可修改比较规则 x = operator.gt # 对应 > 逻辑 # x = operator.eq # 对应 == 逻辑 # x = operator.lt # 对应 < 逻辑 if x(b, a): # 执行对应逻辑 print("条件成立")
方法2:使用lambda匿名函数
如果不想引入额外依赖,也可以直接用匿名函数封装比较逻辑:
a = 33 b = 200 x = lambda val1, val2: val1 > val2 # x = lambda val1, val2: val1 == val2 # x = lambda val1, val2: val1 < val2 if x(b, a): print("条件成立")
两种方法都不需要新增if/else分支判断运算符类型,只要修改x的赋值就能切换判断规则。
内容的提问来源于stack exchange,提问作者Talha Anwar
相关产品推荐
相关产品推荐

