1.__doc__ 表示是函数的注释
def fun(): ''' 我是注释 :return: ''' print ("AAA") print (fun.__doc__)
2.__cached__ 表示编译的文件被存放在cache中
3.__file__ 表示当前允许的py文件的路径
import os print (__file__) print (os.path.abspath(__file__))
在CMD命令行里执行的结果如下:
__file__表示的是相对的路径,而abspath(__file__)表示的是绝对路径,然后用os.path.dirname找到上一级目录
os.path.dirname(os.path.abspath(__file__))
4. __package__ 表示当前执行的文件所在的包的信息,沿用上一节中反射使用的目录结构
from lib import account print (account.__package__)
account这个模块属于lib,因为lib就是这个__package__
5. __name__ 只有执行当前文件的时候,当前文件的__name__ == "__main__",导入的时候__name__ != "__main__"
我们有两个模块,一个是s1,一个是s2
s2.py def run(): print ("S2 run") run() s1.py import s2
如果我们单独执行s2.py,那么打印"S2 run",如果我们单独执行s1.py,也打印"S2 run",但是如果在s2.py中加入
if __name__ == '__main__': run()
那么,当s1.py被运行的时候,run()函数不会被调用。也就是说只有在执行当前文件的时候,__name__ == "__main__",如果外部调用的时候,那么是不等于的。