当前位置: 首页 > news >正文

纸箱 技术支持 东莞网站建设新媒体包不包括公司网站的建设

纸箱 技术支持 东莞网站建设,新媒体包不包括公司网站的建设,广州网站开发,wordpress pc6对于中级Python开发者来说#xff0c;了解了Python的基础语法、库、方法#xff0c;能够实现一些功能之后#xff0c;进一步追求的就应该是写出优雅的代码了。 这里介绍一个很有趣的概念“柯里化”。 所谓柯里化#xff08;Currying#xff09;是把接受多个参数的函数变换…对于中级Python开发者来说了解了Python的基础语法、库、方法能够实现一些功能之后进一步追求的就应该是写出优雅的代码了。 这里介绍一个很有趣的概念“柯里化”。 所谓柯里化Currying是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数并且返回接受余下的参数且返回结果的新函数的技术。这个技术由 Christopher Strachey 以逻辑学家 Haskell Curry 命名的尽管它是 Moses Schnfinkel 和 Gottlob Frege 发明的。 引自 百度百科 这里我们举一个例子我们在初中的时候都学过自由落体在不考虑风阻的情况下物体在一定高度下落的时间是一定的。 计算公式是时间 开平方2 * 高度 / 重力加速度 如果我们要用python实现这个函数 def fall_time(height)return math.sqrt(2 * height * 9.8)但是实际上 重力加速度G的值是随着纬度不同发生变化的。 我们中学的时候只是取了一个近似值。实际上当要求计算精度的时候 赤道上应该是9.78南北极是9.832。这中间可是差着0.5呢。 此时我们有些同学觉得这个简单两个参数不就行了于是就出现了如下方法 def fall_time_with_ga(height, ga):return math.sqrt(2 * height * ga)这样做虽然没问题 但是写代码的时候参数太多了。 一旦你要计算多个数值的时候就会出现如下的代码 print(fall_time_with_ga(100, 9.80122)) print(fall_time_with_ga(200, 9.80122)) print(fall_time_with_ga(300, 9.80122))还记得我们为什么学Python么Python的重要特性之一就是优雅干净。为此田辛老师希望柯里化这个函数降低函数的参数数量这时候我们用到的内部函数的办法 def fall_time_setup(ga:float):def fall_time(height:float):return math.sqrt(2 * height * ga)return fall_time对于这个函数相对来说调用的时候就简单多了。 beijing fall_time_setup(9.80122) # 首先设定重力加速度的值 真正计算的时候只关心高度即可 print(beijing(100)) print(beijing(200)) print(beijing(300))这样调用起来思路就清晰多了。 那有些同学可能会说 调用思路清晰了。 可是函数本身复杂了呀。 整个函数本来两行的现在四行了不优雅!!! 这里田辛老师就要说用后一种方法函数体写成两行也没问题。 仔细观察改造后的这个函数。 fall_time这个内部函数的函数名是不是在调用的时候自始至终没有被使用过我们是不是可以用一个匿名函数去取代它。 要知道Python是支持lambda的呦~ lambda的语法是lambda arguments : expression 于是新的函数诞生了 def fall_time_setup_bylambda(ga:float)-float:return lambda height : math.sqrt(2 * height * ga)调用部分的代码和刚才的调用一模一样。 OK下面是前面所有的代码以及调用可以直接保存 .py 文件看看效果。 # 如何在 Python 中使用“柯里化”编写干净且可重用的代码import mathdef fall_time(height: float) - float:计算物体下落时间强制按照北京的重力加速度设定:param: height: 物体所处高度return math.sqrt(2 * height * 9.80122)print(fall_time(100)) print(fall_time(200)) print(fall_time(300))def fall_time_with_ga(height, ga):计算物体下落时间考虑到重力加速发生变化作为形参传入:param: height: 物体所处高度return math.sqrt(2 * height * ga)print(fall_time_with_ga(100, 9.80122)) print(fall_time_with_ga(200, 9.80122)) print(fall_time_with_ga(300, 9.80122))def fall_time_setup(ga: float):计算物体下落时间考虑到重力加速发生变化并且为了代码简洁做了柯里化的处理:param: height: 物体所处高度def fall_time(height: float):return math.sqrt(2 * height * ga)return fall_timebeijing fall_time_setup(9.80122) # 首先设定重力加速度的值 真正计算的时候只关心高度即可 print(beijing(100)) print(beijing(200)) print(beijing(300))def fall_time_setup_bylambda(ga: float) - float:计算物体下落时间,使用匿名函数return lambda height: math.sqrt(2 * height * ga)beijing fall_time_setup_bylambda(9.80122) print(beijing(100)) print(beijing(200)) print(beijing(300))
http://www.tj-hxxt.cn/news/225040.html

相关文章:

  • 为什么网站打开老是提示建设中北京优质网站制作
  • 企业类网站模板平面设计师需要会什么软件
  • 做网站的教科书福州市住房和城乡建设部网站
  • 网站正在建设中 模版八年级学生做的简易网站
  • 南昌门户网站wordpress 备案号插件
  • 南京网站做的好的公司表白网站制作器
  • 高校校园网站建设培训班做网站的都是直男癌吗
  • 怎么做网站关键字用自己的话回答网络营销是什么
  • 胡歌做的穿衣搭配的网站百度网盟推广怎么做
  • 木门行业网站该怎么做电商网站业务流程图
  • asp化妆品网站可以免费下源码的网站
  • 公司网站与营销网站的区别电子商务发展现状与趋势
  • 建设银行管官方网站动画设计用什么软件
  • 什么平台可以做网站推广作品集如何制作
  • 南昌建设厅网站网站建设费用上海
  • 浏览不良网站会被网警抓吗什么软件可以看到街景
  • 大连淘宝网站建设搜索引擎优化工具
  • 18款禁用网站app破解版智加设计
  • 制作网站的手机软件平台管理系统登录
  • 建网站 3年服务器西安网站设计西安搜推宝
  • 网站模板修改教程南宁企业网站建设
  • 卖域名做非法网站企业微信管理软件
  • 哪里有网站建设项目网站建设付费项目
  • 湘潭企业网站建设百度一下你就知道了百度一下
  • 找做仿网站怎么补网站漏洞
  • 用php做的网站必备那些文件专业网站建设是哪家便宜
  • 开源cms建站WordPress文章过滤
  • 建个站的网站打不开辛集做网站公司
  • 哪些购物网站做的比较简洁有品质wordpress弹窗
  • 湘潭市 网站建设如何做双语网站