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__",如果外部调用的时候,那么是不等于的。

 

posted on 2016-07-27 22:07  Alex0425  阅读(231)  评论(0编辑  收藏  举报