python 以主程序运行_Python if __name__ == '__main__':(以主程序形式执行)

在外部调用某个模块时,可能会将只能在本模块执行的代码给执行了,有没有什么办法让某些特定的代码指定只能在自身运行时才执行被调用时不执行呢?使用if __name__ == '__main__':。

示例代码:

创建Demo模块test.py

def Demo(num):

"""

:param num: 接收一个数

:return: 返回该数乘自己的结果num**2

"""

return num ** 2

print("第一次测试:", Demo(1))

print("第二次测试:", Demo(6))

创建调用代码:

test2.py

from Demo4 import Demo

print("计算3的倍数结果:", Demo(3))

执行结果:

第一次测试: 1

第二次测试: 36

计算3的倍数结果: 9

我们可以看到当我们调用时把test.py中使用的测试代码也执行了,这显然不是我们想要的结果:

代码改进:

test.py

def Demo(num):

"""

:param num: 接收一个数

:return: 返回该数乘自己的结果num**2

"""

return num ** 2

if __name__ == '__main__': # 当自直接运行本文件时执行以下代码

print("第一次测试:", Demo(1))

print("第二次测试:", Demo(6))

test2.py

from Demo4 import Demo

print("计算3的倍数结果:", Demo(3))

执行结果:

计算3的倍数结果: 9

我们可以看到添加if __name__ == '__main__':后我们可以把调用时不需要执行的代码放到if __name__ == '__main__':下方,这样既不会影响到本模块的执行,也不会影响到调用方。

说明: 在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行,如果一个模块不被导入到其他程序中执行,那么他可能在解释器的顶级模块中执行。顶级模块的__name__变量值为__main__.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值