python自动化2021/04/15 模块的导入 __name__ 包与模块的本质

#知识点1 模块的导入
#方式1
# import cal
# cal.add()
# cal.mul()

#方式2
# from cal import add,sub#
# add()
# sub()

#方式3 不推荐 不用的也导入进来了,影响性能。如果本地有重复的函数,会有冲突。
# def add():
# print("main add")

# from cal import *
# add()
# sub()
# mul()
#与本地有冲突的形况下,可以起别名的方式:
# from cal import add as a
# add()
# a()

#知识点2 __name__ 在启动模块里面打印出来的就是__main__ 在被调用的模块里面,当模块被调用的时候,打印出来的就是被调用的模块的模块名
#if __name__ == '__main__':
import cal
#import cal 不建议重复导入,重复的只认作一遍。
# print("main:",__name__) #__main__
# print(type(__name__)) #<class 'str'>


import cal

if __name__ == '__main__':
# 逻辑代码
cal.add()

#导包路径
import sys
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

from main import main
import random


if __name__ == '__main__': #启动入口
main.run()
import sys
print(sys.path) #导包路径
# print(__file__)
# print(os.path.abspath(__file__)) #取bin.py的绝对路径
# print(os.path.dirname(os.path.abspath(__file__))) #取bin.py上一层目录的绝对路径
# print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#取bin.py上两层目录的绝对路径
print(random.random())

posted @ 2021-04-15 10:46  lpaxq  阅读(66)  评论(0编辑  收藏  举报