1 _ debug _
如果 Python 没有以 -O 选项启动,则此常量为真值
-O 表示 移除 assert 语句以及任何以 debug 的值作为条件的代码
注意 O是大写的英文字母,小写会无法识别
执行
2 Ellipsis
等同于... 属于ellipsis类型,就和None数据NoneType类型类似
官方说这个东西主要用途是,自定义数据类型与扩展切片的结合使用
网上看的一个示例
a.append(a)表示:a的最后一个index位置是自身,注意这个操作会不断嵌套循环下去,第2次就是:自身最后一个index位置上是自身,第3次也是这样,第4次,...,第n次
自身里面的最后一个index永远是自身,只有前3个index是固定的
所以个人理解 Ellipsis就是表示同类型的东西不断循环
还有类型注解方面,引用另一位网友的描述
https://blog.csdn.net/BF02jgtRS00XKtCx/article/details/107678758
3 _ file _
当前模块的文件名
通过文件名可以看出它的路径
如上,我么安装json这个第三库,但不知道装在哪里,就可以用它来输出文件名
再比如我自己写的代码
执行
4 _ name _
当前模块的名字,如果当前模块是主模块,值为__main__
contant1_py.py
contant2_py.py
执行
所以,如果是直接运行当前py文件,name ==main,如果A被B引用 执行B 就是A的__name__ != main
5 _ package _
当前模块的包名
这里有个问题,如下
constant.py
constant2.py
在文件所在目录下执行constant2.py
constant里面的__package__没有输出任何值,constant2则是None
现在在constant2.py的import写法伤变化下,然后在constant2.py的上级目录下执行
执行
这下,constant里面的__package__为包名,constant2则是None
看了官网,没太看懂 好像是__package__的值和import 及__main__有关系