多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
通过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 ```