Python學習之函式(全域性變數和區域性變數)

2021-08-01 07:52:00 字數 2642 閱讀 1723

全域性變數和區域性變數

全域性變數,顧名思義,就是為整個程式塊服務的。

區域性變數,顧名思義,就是為整個程式中的某乙個程式塊兒服務的。

示例:

>>> a = 10

>>> def add(a,b):

... a = 5

... c = a + b

... print "this a: " + str(a)+ " is a inner varible"

... print "---------------------------"

...

>>> add(a,3)

this a: 5 is a inner varible

---------------------------

>>> print a

10>>> print "this a: " + str(a) + " is a outer varible"

this a: 10 is a outer varible

>>>

發現,在定義函式add之外的a為外部變數,在定義的函式add內的a是內部變數,函式內部定義的a的作用範圍只是在定義的函式體結束就失去意義了,而外部的a依然沒有受到影響。

但是這兩個變數雖然位置不同,但是兩個變數都相互不影響,它們在各自的作用域內實現自己的價值。

思考,該如何定義乙個全域性變數呢?

在python中,定義乙個全域性變數需要使用乙個關鍵字global也就是全域性的意思。

來看看文件中對於global的解釋:

theglobalstatement

global_stmt ::= 「global」 identifier (「,」 identifier)*

theglobalstatement is a declaration which holds for the entire

current code block. it means that the listed identifiers are to be

interpreted as globals. it would be impossible to assign to a global

variable withoutglobal, although free variables may refer to

: 解釋:「全域性」語句是乙個適用於整個語句的宣告

當前**塊。 這意味著列出的識別符號是

為全域性變數,它不可能給沒有global的表示符分配乙個全域性變數,儘管自由變數可以引用。

1、將全域性變數放在函式外

>>> global a

>>> a = 10

>>> def add(a,b):

... a = 5

... c = a + b

... print "this a: " + str(a) + " is a inner varible"

... print "----------------------------------------"

...

>>> add(a,0)

this a: 5 is a inner varible

----------------------------------------

>>> print "this a: " + str(a) + " is a outer varible"

this a: 10 is a outer varibl

>>>

2、將全域性變數放在函式內

>>> x = 4

>>> def sub(y):

... global x

... x = 7

... z = x * y

... print "this x is : " + str(x) + " is a inner varible !"

... print "------------------------------------------"

...

>>> sub(5)

this x is : 7 is a inner varible !

------------------------------------------

>>> print "this x is : " + str(x) + " is a outer varible !"

this x is : 7 is a outer varible !

>>>

經過測試,發現無論變數在函式體內還是在定義的函式外,只要被披上global的衣服,它就是作用與整個**塊兒。

最後,注意,這個全域性變數要謹慎使用,用法不當會很容以造成**閱讀混亂!

完成於2023年05 月 18 號

晚上 20:49

Python學習筆記之全域性變數

在python中,使用全域性變數是需要使用global關鍵字進行申明的,否則會出問題。例如這樣的一段 python就會報錯 python view plain copy usr bin python filename use global.py author boyce email boyce.yw...

Python學習筆記之全域性變數

在python中,使用全域性變數是需要使用global關鍵字進行申明的,否則會出問題。例如這樣的一段 python就會報錯 python view plain copy usr bin python filename use global.py author boyce email boyce.yw...

python學習筆記之全域性變數

usr bin python coding utf 8 class employee 所有員工的基類 empcount 0 def init self,name,salary self.name name self.salary salary employee.empcount 1 def disp...