python之全局變量與局部變量


全局變量和局部變量的區別在於作用域,全局變量在整個py文件中聲明,全局范圍內可以使用;局部變量是在某個函數內部聲明的,只能在函數內部使用,如果超出使用范圍(函數外部),則會報錯。

 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 # @Time     :2018/11/28 9:25
 4 # @Author   :yosef
 5 # @Email    :wurz529@foxmail.com
 6 # @File:    :class22.py
 7 # @Software :PyCharm Community Edition
 8 A = 100 # 全局變量一般用大寫字母表示
 9 
10 def func():
11     a = 50 # 局部變量一般用小寫字母表示
12     print(a+A)
13 
14 
15 func()
16 print(A)
17 print(a) # 報錯信息NameError: name 'a' is not defined

在函數內部,如果局部變量與全局變量變量名一樣,則優先調用局部變量。

 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 # @Time     :2018/11/28 9:55
 4 # @Author   :yosef
 5 # @Email    :wurz529@foxmail.com
 6 # @File:    :class23.py
 7 # @Software :PyCharm Community Edition
 8 A = 100
 9 
10 def func():
11     A=250
12     print(A)
13 
14 
15 print(A)    # 打印全部變量
16 func()      # 局部變量

如果想在函數內部改變全局變量,需要在前面加上global關鍵字,在執行函數之后,全局變量值也會改變。

 1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 # @Time     :2018/11/28 9:55
 4 # @Author   :yosef
 5 # @Email    :wurz529@foxmail.com
 6 # @File:    :class23.py
 7 # @Software :PyCharm Community Edition
 8 A = 100
 9 
10 def func():
11     global  A
12     A = 200
13     print(A)
14 
15 
16 print(A)    # 打印全局變量
17 func()      # 局部變量
18 print(A)   # 改變后的全局變量

 

如果全局變量是列表類型,可以通過list的列表方法去對列表進行修改,並且可以不用global來聲明。

1 list_1 = [1,2,56,"list"]
2 
3 def changeList():
4     list_1.append("over")
5     print(list_1)
6 
7 changeList()
8 print(list_1)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM