企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
通过operator函数将字符串转换回运算符 [TOC] # 需求 由于某些需要,将一些运算符做了列表,以便后续的程序判断传入的字符串中是否包含该列表中的某一个运算符,如果包含,就用该运算符做运算. 但该运算符已经转换是字符串了,没有办法做运算符用,经过全网搜索,发现`operator`函数可以实现本功能 ## 原始代码 **代码** ```python #代码 condition='age > 20' cond_info=['>','<','='] for n in cond_info: if n in condition: print('ok',n,type(n)) if 30 n 20: print('okkk') ``` **输出:** ![运行结果](https://www.github.com/noah-luo/imags/raw/master/year/1547457407701.png) 提示`n` 是错误的语法,应为这里的n是字符串,不是运算符 ## 改良代码 **代码** ```python condition = 'age > 20' import operator cond_info = {'>': operator.gt, '<': operator.lt, '=': operator.eq} for n in cond_info: if n in condition: print('ok',n,type(n)) if cond_info[n](30, 20): print('okkk') ``` **输出** ``` ok > <class 'str'> okkk ```