1、在模块中,我们需要判断__name__是否被赋值为“__main__”。
python fibo.py <arguments>
2、在脚本执行的情况下,模块的__name__属性将被赋值为__main__,这就是原因所在。
$ python fibo.py 50 0 1 1 2 3 5 8 13 21 34
3、若以模块导入,则不会执行:
>>> import fibo >>>
知识点扩展:
Python动态声明变量赋值代码实例
通过exec()、globals()和locals()
# 通过exec()
for i in range(1, 4):
# 第一次循环 i=1 时,会执行字符串中的python语句 ex1 = "exec1",以此类推
exec(f'ex{i} = "exec{i}"')
# 通过globals()和locals()
def test():
# globals()
for i in range(1, 4):
# 第一次循环 i=1 时,执行 globals()['gb1'] = 'global1', globals()是一个dict
globals()[f'gb{i}'] = f'global{i}'
# locals()
for i in range(1, 4):
locals()[f'lc{i}'] = f'local{i}'
# 尝试打印locals的变量
try:
print(lc1, lc2, lc3) # 会报错 http://HdhCmsTestcppcns测试数据
except Exception as e:
print(e)
print(locals()['lc1'], locals()['lc2'], locals()['lc3']) # 通过键值对
if __name__ == '__main__':
# 执行
test()
print('---------------------')
# 打印函数定义的全局变量
print(gb1, gb2, gb3)
print('---------------------')
# 打印通过exec()定义的变量
print(ex1, ex2, ex3)
输出结果:
编程客栈name 'lc1' is not defined local1 local2 local3 --------------------- global1 gldmokgDsAfobal2 g HdhCmsTestcppcns测试数据 lobal3 --------------------- exec1 exec2 exec3
到此这篇关于python模块中判断全局变量的赋值的实例讲dmokgDsAf解的文章就介绍到这了,更多相关python判断全局变量赋值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
查看更多关于python模块中判断全局变量的赋值的实例讲解的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did163075