马上放假了哈,真是一点心思都没有,想早点休息了。
一、from/import
例1:
如图,在test.demo1中a = 8,在demo6中:
from test import demo1
print(demo1.a)
#或者:
from test.demo1 import a
print(a)
>>>
8
例2:
test.demo1中多个变量:
a = 8
d = 6
c = 6
demo6中:
from test.demo1 import *
print(a)
print(d)
print(c)
>>>
866
如果指定*对应的变量,在test.demo1中:
__all__= ['a','c']
a = 8
d = 6
c = 6
此时demo6的执行结果变为:
NameError: name 'd' is not defined
删除print(d)后正常,执行结果:8 6
例3:
在demo5中:
a = 2
b = 'ok'
c = 'strange'
在demo4中:
#加入\换行后认为是同一行
from demo5 import a,b,\
c
print(a,c,b)
>>>2 strange ok
二、__init__.py
在test.__init__中输入:
d = '我被执行了'
print(d)
test.demo1中:
__all__= ['a','c']
a = 8
d = 6
c = 6
在demo6中:
from test.demo1 import a
print(a)
输出结果:
我被执行了
8
在导入test.demo1时__init__会被自动执行。
用途:①限制包中变量的使用②避免重复定义/导入