python脚本中的函数开发时怎么调试(__name__=="__main__")

python脚本在开发的时候,需要经常调试,怎样比较方便的检查编写的函数是否正常呢?当然,最好调试脚本保留着,以后维护时说不定还用呢。

python中有个很好玩的东东“__name__”,这个东东在执行单个的py文件时值为默认的__main__,如果被调用就变为文件名(区扩展名py的)。看个例子。

创建两个python文件:a.py和b.py。a.py中使用__name__调用自身文件中的函数fun_a1;b.py中引入a,并且调用a.py中的函数fun_a1。




a.py代码如下:

#!/usr/bin/python
#-*-coding:utf-8-*-

# 参数flg标记调用来源,本文件内1,外部调用2
def fun_a1(flg):
	print "fun_a1,_name_:%s,flg:%d"%(<span style="background-color: rgb(255, 255, 51);">__name__</span>,flg)

# 以下是调试用的
if __name__=='__main__':
	fun_a1(1)

b.py代码如下:

#!/usr/bin/python
#-*-coding:utf-8-*-

import a

if __name__=='__main__':
	a.fun_a1(2)

运行a.py,结果如下:

[root@localhost test_name_]# ./a.py 
fun_a1,_name_:<span style="background-color: rgb(255, 255, 51);">__main__</span>,flg:<span style="color:#ff0000;">1</span>

那么运行b.py,输出信息会是什么呢?“...,flg:1”和“...,flg:2”?其实运行b.py时,会import“a.py”,

这种情况下a.py中的“__name__”就不是“__main__”了,“...,flg:1”也就不会输出。看下结果吧:

[root@localhost test_name_]# ./b.py 
fun_a1,_name_:<span style="background-color: rgb(255, 255, 0);">a</span>,flg:<span style="color:#ff0000;">2</span>
[root@localhost test_name_]# 



在py文件编写时使用“if __name__='__main__'”进行调试,既可以随时调试(不需要在函数中改逻辑或增加额外的输出信息),也不影响函数的外部调用。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值