之前看到一个文章,讲的是一些关于Python的冷知识,有兴趣的可以看一下哟~
在Python中,一切皆对象,...
也不例外。在Python3中...
叫做Ellipsis。
>>> type(...)
而在python2中没有…
这个语法。只能直接使用Ellipsis来获取:
>>> type(Ellipsis)
它转为布尔值时为真:
>>> bool(...)
True
那么这个...
到底有什么用呢,据说它是Numpy的语法糖,不使用Numpy的人可以说是没什么用了。
或者你可以使用 … 代替 pass ,如:
def test():
pass
# 可以替换成
def test():
...
在正常情况下,我们所编写的所见到的代码,好像都默许了类名首字母大写,而实例用小写的这一准则。但这并不是强制性的,即使你反过来的也没有关系。
但有一些内置的类,首字母都是小写,而实例都是大写。
比如 bool 是类名,而 True,False 是其实例;
比如 ellipsis 是类名,Ellipsis是实例;
还有 int,string,float,list,tuple,dict 等一系列数据类型都是类名,它们都是小写。
诸如 +=
和 *=
这些运算符,叫做增量赋值运算符。
这里使用用 +=
举例,以下两种写法,在效果上是等价的。
# 第一种
a = 1 ; a += 1
# 第二种
a = 1; a = a + 1
+=
其背后使用的魔法方法是 __iadd__
,如果没有实现这个方法则会退而求其次,使用 __add__
。
这两种写法有什么区别呢?
用列表举例 a += b,使用 __iadd__
的话就像是使用了a.extend(b),如果使用 __add__
的话,则是 a = a+b,前者是直接在原列表上进行扩展,而后者是先从原列表中取出值,在一个新的列表中进行扩展,然后再将新的列表对象返回给变量,显然后者的消耗要大些。
所以在能使用增量赋值的时候尽量使用它。
and 和 or 是我们再熟悉不过的两个逻辑运算符。而我们通常只用它来做判断,很少用它来取值。
如果一个or表达式中所有值都为真,Python会选择第一个值,而and表达式则会选择第二个。
>>>(1 or 10) * (2 and 5)
5 # 1*5
正常情况下,我们在终端下执行Python 命令是这样的。
>>> for i in range(3):
... print (i)
...
0
1
2
其实 >>>
和 ...
这两个提示符也是可以修改:
>>> import sys
>>> sys.ps1
'>>> '
>>> sys.ps2
'... '
>>>
>>> sys.ps2 = '................'
>>> sys.ps1 = 'aaa>>>'
aaa>>>for i in range(3):
................ print (i)
................
0
1
2
参考:https://www.cnblogs.com/wongbingming/p/9393186.html