-----------------------------文件module1.py的内容-----------------------------
print("I'm from module1.py")
s = "I'm str s and from module1.py"
def func1():
print("I'm func1 and from module1.py")
def func2():
print("I'm func2 and from module1.py")
func1()
def change_s():
global s
s = "I'm str new_s and from module1.py"
__all__=["s", "func1"]
-----------------------------import1.py的内容-----------------------------
import module1
'''
import 模块名
1.产生新的名称空间
2.以新建的名称空间为全局名称空间,执行文件的代码
3.拿到一个模块名,指向模块产生的名称空间
'''
s = "I'm str s and from import1."
def func1():
print("I'm func1 and from import1.py")
print(module1.s)
module1.func1()
module1.func2()
module1.change_s()
print(module1.s)
执行结果:
I'm from module1.py
I'm str s and from module1.py
I'm func1 and from module1.py
I'm func2 and from module1.py
I'm func1 and from module1.py
I'm str new_s and from module1.py
-----------------------------from_import.py-----------------------------
from module1 import s
'''
from 模块/包
1.产生新的名称空间
2.以新建的名称空间为全局名称空间,执行文件的代码
3.直接拿到的就是模块/包产生的名称空间中的名字
'''
print(s)
执行结果:
I'm from module1.py
I'm str s and from module1.py
-----------------------------from_import_all.py-----------------------------
from module1 import *
'''
from 模块/包 import *
表示导入模块/包内所有的名字,如果模块/包内定义了__all__就只导入列表内的名字
'''
print(s)
func1()
执行结果:
I'm from module1.py
I'm str s and from module1.py
I'm func1 and from module1.py