name == ‘main‘
作用:
让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行
- 当.py文件被直接运行时,
if __name__ == '__main__'之下的代码块将被运行; - 当.py文件以模块形式被导入时,
if __name__ == '__main__'之下的代码块不被运行。实例:
#module.pydef main():print("hello word")if __name__ == '__main__':main()
#test.pyimport modlemain()#结果hello word注意:main()函数值执行了一遍,modle.py中的main()是没有执行的,因为当modle.py被引用过来,此时__name__ == '__main__' 的值为False
file
作用:
返回文件所在目录
c:/test/test.pyimport osprint(__file__)#c:/test/test.pyprint(os.path.dirname(__file__))#c:/test
Django中的BASE_DIR

#例如这个项目在D盘#D:Aimport osBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))os.path.abspath(__file__) #D:A/A/settings.pyos.path.dirname(os.path.abspath(__file__)) ##D:A/Aos.path.dirname(os.path.dirname(os.path.abspath(__file__))) #D:A
all
作用:
实例

init
from .utlis import *__all__=['run1','run2']
utlis
def run1():return "run1"def run2():return "run2"def run3():return "run3"
test
from A.B import *print(run1()) >>>run1print(run2()) >>>run2print(run3()) >>>语法错误如果这么定义了,还是要用run3,怎么办?from A.B import run3print(run3()) >>>run3
