博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python语法糖
阅读量:6453 次
发布时间:2019-06-23

本文共 692 字,大约阅读时间需要 2 分钟。

  语法糖指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法。语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读。不过其并没有给语言添加什么新东西。

  举个例子:在C语言里用a[i]表示*(a+i),用a[i][j]表示*(*(a+i)+j),这种写法简洁明了,也更好懂了。

  实际上从面向过程到面向对象也是一种语法糖啊,C语言可以通过它的指针、类型转换,结构实现面向对象的编程风格,但是C++更进一步的推广了这种风格,更好用了,不过到了C#把OO的风格发挥得淋漓尽致。OO的编程风格对于面向过程来说是不是一种语法糖呢?如果生硬地照此理解,只有计算机硬件指令才不算语法糖,而其他一切利用编译器、汇编器将代码抽象,和自然语言更相近的手段都算语法糖。

  举些例子吧:
  1、
c = [b,a][a>b] 取两个中的最大值
  2、lambda、filter、map、reduce函数
  3、
list1=[2*x+1 for x in range(10)]
  4、对列表
lst = [1, -2, 10, -12, -4, -5, 9, 2]实现排序,按照正的放前面,负的放后面,并且分别按绝对值从小到大。即输出:
    [1, 2, 9, 10, -2, -4, -5, -12]
   方法是:lst.sort(key=lambda x: (x < 0, abs(x)))
   等同于:lst.sort(key=lambda x: abs(x))--->lst.sort(key=lambda x: x < 0)
  5、装饰器

转载地址:http://jvfzo.baihongyu.com/

你可能感兴趣的文章
ngix内核优化
查看>>
Docker(二十一)k8s deployment 的yaml 文件
查看>>
VMware Workstation中安装Hyper-V
查看>>
二级路由器设置为何要关闭DHCP服务
查看>>
我的友情链接
查看>>
tomcat 性能优化
查看>>
Perl入门(六) Perl方法的使用
查看>>
citrix license server 服务无法启动
查看>>
批处理添加连续ip
查看>>
php5.5以上版本编译扩展模块方法
查看>>
xargs 命令
查看>>
我的友情链接
查看>>
CHTools-OC版本目录介绍
查看>>
Rsync详解
查看>>
在JavaScript中创建对象
查看>>
SpringCloud学习成长之路二 服务客户端(rest+ribbon)
查看>>
HTTP 与 Post
查看>>
[转载]真正的inotify+rsync实时同步 彻底告别同步慢
查看>>
DAX/PowerBI系列 - 关于时间系列 - 时间相关数值比较 - 用非自带函数
查看>>
BestCoder Round #72 (div.2)
查看>>