省略号也是对象
...
这是省略号,在Python中,一切皆对象。它也不例外。
在 Python 中,它叫做 Ellipsis 。
在 Python 3 中你可以直接写…来得到这玩意。
>>>...
Ellipsis
>>>type(...)
'ellipsis'>
而在 python2 中没有…这个语法,只能直接写Ellipsis来获取。
>>>Ellipsis
Ellipsis
>>>type(Ellipsis)
'ellipsis'>
它转为布尔值时为真
>>>bool(...)
True
最后,这东西是一个单例。
>>>id(...)
4362672336
>>>id(...)
4362672336
这东西有啥用呢?据说它是Numpy的语法糖,不玩 Numpy 的人,可以说是没啥用的。
在网上只看到这个 用...
代替 pass ,稍微有点用,但又不是必须使用的。
try:
1/0
exceptZeroDivisionError:
...
类的首字母不一定是大写
在正常情况下,我们所编写的所见到的代码,好像都默许了类名首字母大写,而实例用小写的这一准则。但这并不是强制性的,即使你反过来的也没有关系。
但有一些内置的类,首字母都是小写,而实例都是大写。
比如 bool 是类名,而 True,False 是其实例;
比如 ellipsis 是类名,Ellipsis是实例;
还有 int,string,float,list,tuple,dict 等一系列数据类型都是类名,它们都是小写。
增量赋值的性能更好
诸如+=
和*=
这些运算符,叫做 增量赋值运算符。
这里使用用 += 举例,以下两种写法,在效果上是等价的。
#第一种
a=1;a+=1
#第二种
a=1;a=a+1
+=
其背后使用的魔法方法是 __iadd__,如果没有实现这个方法则会退而求其次,使用 __add__ 。
这两种写法有什么区别呢?
用列表举例 a += b,使用 __add__ 的话就像是使用了a.extend(b),如果使用 __add__ 的话,则是 a = a+b,前者是直接在原列表上进行扩展,而后者是先从原列表中取出值,在一个新的列表中进行扩展,然后再将新的列表对象返回给变量,显然后者的消耗要大些。
所以在能使用增量赋值的时候尽量使用它。
and 和or 的取值顺序
and 和 or 是我们再熟悉不过的两个逻辑运算符。而我们通常只用它来做判断,很少用它来取值。
如果一个or表达式中所有值都为真,Python会选择第一个值,而and表达式则会选择第二个。
>>>(2or3)*(5and7)
14#2*7
如何修改解释器提示符
这个当做今天的一个小彩蛋吧。应该算是比较冷门的,估计知道的人很少了吧。
正常情况下,我们在 终端下 执行Python 命令是这样的。
>>>foriinrange(2):
...print(i)
...
0
1
你是否想过>>>
和...
这两个提示符也是可以修改的呢?
>>>importsys
>>>sys.ps1
'>>>'
>>>sys.ps2
'...'
>>>
>>>sys.ps2='----------------'
>>>sys.ps1='Python>>>'
Python>>>foriinrange(2):
----------------print(i)
----------------
0
1
审核编辑:汤梓红
-
python
+关注
关注
56文章
4811浏览量
85103 -
解释器
+关注
关注
0文章
103浏览量
6569
发布评论请先 登录
相关推荐
华邦电子安全闪存关键知识点
Aigtek功率放大器应用:电感线圈的知识点分享
![Aigtek功率放大器应用:电感线圈的<b class='flag-5'>知识点</b>分享](https://file1.elecfans.com//web3/M00/04/41/wKgZO2dx_leAVMfAAAXXplP3dbU965.png)
后悔没有早点看到:天线设计中的知识点!
![后悔没有早点看到:天线设计中的<b class='flag-5'>知识点</b>!](https://file1.elecfans.com/web3/M00/03/7B/wKgZO2dpElSAM8gWAACQRmlorfs337.png)
硬件工程师面试基础知识点
![硬件工程师面试<b class='flag-5'>基础知识点</b>](https://file1.elecfans.com/web2/M00/0C/F7/wKgaomc-o8uAZ-iCAAAbrFdO5AM082.jpg)
一篇搞定DCS系统相关知识点
![<b class='flag-5'>一</b>篇搞定DCS系统相关<b class='flag-5'>知识点</b>](https://file1.elecfans.com//web2/M00/C5/D7/wKgZomYCpiOAakfcAAGWO8D1Gg0039.png)
评论