目录
- 关于引入和使用方法
- 方式一:调用另一个文件的变量和函数
- 方式二:调用另一个文件的类
- 关于执行顺序
关于引入和使用方法
方式一:调用另一个文件的变量和函数
main.py
from batch import *print("在main调用batch的变量NUM:",NUM)
print("在main调用batch的方法test():",test())
batch.py
NUM = 10
def test():return "batch's test()"
结果:
在main调用batch的变量NUM: 10
在main调用batch的方法test(): batch's test()
方式二:调用另一个文件的类
main.py
from data import Data # 这样的好处在于可以起别名:from data import Data as D
#from data import * # 这样也是可以的d = Data()
print("调用类的变量:",d.n_user)
print("调用类的方法:",d.info())
data.py
class Data():def __init__(self):self.n_user = 100def info(self):return "This is Data's method..."
结果:
调用类的变量: 100
调用类的方法: This is Data's method...
关于执行顺序
在主文件中,程序顺序执行
执行 import 动作时,如果引入的文件中的主进程中有可执行的代码,则会在引入的时候执行完毕
通俗来讲,可以看作把引入文件的代码全都复制粘贴到主文件import的位置
。?
main.py
from batch import *print("main--N_USER:",N_USER)print("ok1")if __name__=="__main__":print("ok2")for i in range(3):test()print("ok3")
batch.py
from data import Datad = Data()
N_USER = d.n_user
print("N_USER",N_USER)def test():user_len = N_USERprint("just 调用:",user_len)
data.py
class Data():def __init__(self):self.n_user = 100
结果:
batch--N_USER: 100 # 在import的时候就执行了引入文件的代码
main--N_USER: 100 # 接下来就是依次执行主进程中的代码
ok1
ok2
just 调用: 100 # 在调用引入文件函数的时候只执行函数部分,其他部分不会再执行
just 调用: 100
just 调用: 100
ok3