目录
__init_.py
文件,该文件称之为包).py
文件,在文件内写入一堆函数,则被称为自定义模块,即使用python编写的.py
文件模块名.
+ 模块中的方法模块中的方法
,可以直接使用方法名#使用多个方法,如 : time模块
from time import sleep, time
#导入所有功能
from time import *
#导入多个模块
import sys,time #不推荐
#在 from 模块 import 模块方法
__all__ = [] #只允许导入列表内的变量
#m1.py
print('from m1.py')
from m2 import x
y = 'm1'
--ImportError: cannot import name 'y'
1. 创建m2的名称空间
2. 执行m2.py,将执行产生的名字丢到m2.py
3. 在当前执行文件中拿到m2.x
#m2.py
print(from m2.py)
from m1 import y
x = 'm2'
--ImportError: cannot import name 'x'
1. 创建m1的名称空间
2. 执行m1.py,将执行产生的名字丢到m1.py
3. 在当前执行文件中拿到m1.y
#run.py
import m1
--ImportError: cannot import name 'y'
创建m1的名称空间
执行m1.py,将执行产生的名字丢到m1.py
在当前执行文件中拿到m1
#--方案一
#m1.py
print('from m1.py')
def func1():
from m2 import x
print(x)
y = 'm1'
# m2.py
print('from m2.py')
def func1():
from m1 import y
print(y)
x = 'm2'
#方案二
# m1.py
print('from m1.py')
y = 'm1'
from m2 import x
# m2.py
print('from m2.py')
x = 'm2'
from m1 import y
x = 1
def f1():
print('from f1')
def f2():
print('from f2')
if __name__ == '__main__': #判断
f1()
f2()
# __name__ == '__main__'不成立, __name__ != '__main__'
# 当testt为模块文件时,__name__等于文件名
# __name__是每个文件独有的,当该文件作为执行文件运行时,__name__等于'__main__';当该文件作为模块文件导入时,__name__等于文件名
原文:https://www.cnblogs.com/shaozheng/p/11592144.html