新建一个py文件,记为t1.py
# t1.pym = 2n = 1a = m + nprint("t1 a=", a)新建一个py文件,记为t2.py
# t2.pym = 0n = 1b = m + nprint("t2 b=", b)现如今我在在另外一个文件t3.py中调用t1.py中的变量a和t2.py中的变量b(这3个py文件在同一文件夹下,具体代码如下:
# t3.pyfrom t1 import afrom t2 import bc = a + bprint("t3 c=", c)运行后结果如下
运行t3.py文件后,它把t1.py、t2.py的结果都打印出来了(原因见文末)。如果咱们在t3.py中只是要调用这两个变量a和b,并不想输出前两个文件的结果,该怎么办呢?
简单啊,前两个py文件只需加一行代码即可:
# 修改后的t1.pym = 2n = 1a = m + nif __name__ == '__main__':# 这一句里的语句只在此文件中运行 print("t1 a=", a) # 修改后的t2.pym = 0n = 1b = m + nif __name__ == '__main__':# 这一句里的语句只在此文件中运行 print("t2 b=", b)t3.py不用修改,运行后结果如下
__name__属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
运行输出如下:
程序自身在运行
import using_name
我来自另一模块
说明: 每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。
说明:__name__ 与 __main__ 底下是双下划线, _ _ 是这样去掉中间的那个空格。