1、在模块中,我们需要判断__name__是否被赋值为“__main__”。
1
|
python fibo.py <arguments> |
2、在脚本执行的情况下,模块的__name__属性将被赋值为__main__,这就是原因所在。
1
2
|
$ python fibo.py 50 0 1 1 2 3 5 8 13 21 34 |
3、若以模块导入,则不会执行:
1
2
|
>>> import fibo >>> |
知识点扩展:
Python动态声明变量赋值代码实例
通过exec()、globals()和locals()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# 通过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) # 会报错 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) |
输出结果:
1
2
3
4
5
6
|
name 'lc1' is not defined local1 local2 local3 - - - - - - - - - - - - - - - - - - - - - global1 global2 global3 - - - - - - - - - - - - - - - - - - - - - exec1 exec2 exec3 |
到此这篇关于python模块中判断全局变量的赋值的实例讲解的文章就介绍到这了,更多相关python判断全局变量赋值内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/jishu/jichu/28637.html