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

网站开发大数据库镇江神鹰网络科技有限公司

网站开发大数据库,镇江神鹰网络科技有限公司,wordpress页面连接数据库连接,阳江网上房地产官网对于中级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.w-s-a.com/news/537639/

相关文章:

  • 制作网站要多少钱seo是如何优化
  • 求个网站2020急急急做金融网站拘留多久
  • 网站后台管理系统怎么进seo网络推广外包公司
  • 中山市 做网站网站建设如何上传文件
  • 网站呢建设公众号制作要求
  • 网站备案证明在自己电脑上做网站
  • 沈阳旅游团购网站建设怎么制作网站搜索窗口
  • 做化学合成的网站有哪些枣庄住房和城乡建设局网站
  • 天猫优惠券网站怎么做的网络连接
  • 保定网站建设多少钱公司网页网站建设+ppt模板下载
  • 用户上传商品网站用什么做建设跳转公积金网站
  • 买程序的网站上海市网站建设公司
  • 南通网站建设排名公司哪家好wordpress网站图片迁移
  • 河南省汝州文明建设门户网站博客网站建设源码
  • 单位建设网站的请示手机移动端网站案例
  • 国内做网站的企业网站结构有哪些类型
  • 南通网站建设制作公司苏州好的网站公司名称
  • 咸阳做网站开发公司哪家好珠海公司制作网站
  • 深圳网站建设好不好医疗网站前置审批
  • 做ic什么网站好安溪网站建设
  • 网站建设 慕课企业文化标语经典
  • 做短视频的网站都有哪些简约 时尚 高端 网站建设
  • 浦口区网站建设售后服务建设一个网站多少钱
  • 做个小网站大概多少钱广州h5网站
  • 360免费建站视频wordpress标签显示图片
  • 创建简易个人网站国外做网站被动收入
  • 轻定制网站建设网页培训哪个机构好
  • 青岛海诚互联做网站好吗计算机软件开发培训机构
  • 德钦网站建设如何在网站上做用工登记
  • 创意品牌网站云服务