eval()函数的巧用
2024-08-28 14:14:23
eval的功能
将字符串str当成有效的表达式来执行。.
写函数,专门计算图形的面积
其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积
调用函数area(‘圆形’,圆半径) 返回圆的面积
调用函数area(‘正方形’,边长) 返回正方形的面积
调用函数area(‘长方形’,长,宽) 返回长方形的面积
def area():
def 计算长方形面积():
pass
def 计算正方形面积():
pass
def 计算圆形面积():
pass
如果不用eval函数。
import math
def area(x,*args):
def chang(r,l): return r*l
def zheng(r):
return r*r
def yuan(r):
return math.pi*r*r
if x=='圆形':
res=yuan(*args) elif x=='正方形':
res=zheng(*args)
elif x=='长方形':
res=chang(*args)
return res res=area('圆形',5)
print('面积:%s' %res)
采用eval。
import math
def area(x,*args):
def chang(r,l):
return r*l
def zheng(r):
return r*r
def yuan(r):
return math.pi*r*r
return eval(x)(*args)
res=area('yuan',5)
print(res)
由于eval的弊端,判断是否在local()内优化。
import math
def area(x,*args):
def chang(r,l):
return r*l
def zheng(r):
return r*r
def yuan(r):
return math.pi*r*r
if x in locals(): #判断当前作用域的局部变量
return eval(x)(*args)
res=area('yuan',5)
最新文章
- SQL 性能调优中可参考的几类Lock Wait
- ABP理论学习之Web API控制器(新增)
- Qt之布局管理--基本布局
- POJ 1149PIGS 网络流 最大流
- ML—随机森林·1
- 5.9-4用字符串生成器给字符串str追加1~10这10个数字
- JSBinding + SharpKit / 实战:转换 Survival Shooter
- C# 模拟POST提交文件
- 155. Min Stack
- 字符设备驱动1:新的方式添加cdev + 在open函数中将文件私有数据指向设备结构体
- Log4Net五步走
- 5-jQuery - AJAX get()/post()页面请求即执行
- Android 文字过长TextView如何自动截断并显示成省略号
- coursea机器学习课程作业
- Ireport启动错误
- Java Service Wrapper 使用
- 4.93Python数据类型之(8)集合
- hinton教授的本科生课程CSC321-机器学习中的神经网的笔记
- 第05章:MongoDB-CRUD操作--数据库
- android系列9.LinearLayout学习
热门文章
- MySQL内置函数:IP地址点分式与数字转换函数(INET_ATON/INET_NTOA)
- 在2d游戏中常用的向量方式
- 53. Maximum Subarray@python
- 【NOIP提高A组模拟2018.8.14】 区间
- 【windows】win7 sp1 系统语言中英文切换
- 【mysql】The server quit without updating PID file
- centos 7 安装WordPress的参考博文
- shutil,zipfile,tarfile模块
- Docker容器技术的核心原理
- JAVA-基础(六) Java.serialization 序列化