python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题

python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题

1、在一个py文件中调用另一个py文件中的变量

新建一个py文件,记为t1.py

# t1.py
m = 2
n = 1
a = m + n
print("t1 a=", a)

新建一个py文件,记为t2.py

# t2.py
m = 0
n = 1
b = m + n
print("t2 b=", b)

现如今我在在另外一个文件t3.py中调用t1.py中的变量a和t2.py中的变量b(这3个py文件在同一文件夹下,具体代码如下:

# t3.py
from t1 import a
from t2 import b

c = a + b

print("t3 c=", c)

运行后结果如下
在这里插入图片描述

2、这里有个有趣的问题

运行t3.py文件后,它把t1.py、t2.py的结果都打印出来了(原因见文末)。如果咱们在t3.py中只是要调用这两个变量a和b,并不想输出前两个文件的结果,该怎么办呢?

简单啊,前两个py文件只需加一行代码即可:

# 修改后的t1.py
m = 2
n = 1
a = m + n
if __name__ == '__main__':	# 这一句里的语句只在此文件中运行
    print("t1 a=", a)

# 修改后的t2.py
m = 0
n = 1
b = m + n
if __name__ == '__main__':	# 这一句里的语句只在此文件中运行
    print("t2 b=", b)

t3.py不用修改,运行后结果如下
在这里插入图片描述

3、出现这个现象的原因是什么?

__name__属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

# Filename: using_name.py

if __name__ == '__main__':
   print('程序自身在运行')
else:
   print('我来自另一模块')

运行输出如下:

程序自身在运行

import using_name
我来自另一模块

说明: 每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。

说明:__name____main__ 底下是双下划线, _ _ 是这样去掉中间的那个空格。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值