python作用域(scope)(三分鐘讀懂)

2021-10-25 09:09:15 字數 1239 閱讀 2793

作用域指的是變數生效的區域,在python中一共有兩種作用域

1.全域性作用域

2.函式作用域

注意:變數的查詢

b =

20# 全域性變數

deffn()

: a =

10# a定義在了函式內部,所以他的作用域就是函式內部,函式外部無法訪問

print

('函式內部: a ='

,a)# 直接在內部獲取

print

('函式內部: b ='

,b)# 內部沒有,那麼就去全域性獲取

fn()

# 呼叫

# print('函式外部: a =',a) 這裡會出錯,因為不能去訪問函式內部

print

('000函式外部: b ='

,b)'''

# 輸出結果為

函式內部: a = 10

函式內部: b = 20

000函式外部: b = 20

'''

把函式內部變數修改為全域性變數,使用global關鍵字

在函式中為變數賦值時,預設為區域性變數賦值,把函式內部變數修改為全域性變數,使用global關鍵字,來宣告變數

a =

20# 全域性變數

print

('原來全域性a='

,a,'原來全域性a的id=',id

(a))

deffn3()

:global a # 宣告在函式內部的使用a是全域性變數,此時再去修改a時,就是在修改全域性的a

a =10# 修改全域性變數

print

('函式內部a:'

,a,'函式內部a的id=',id

(a))

fn3(

)print

('執行函式後a ='

,a,'執行函式後a的id=',id

(a))

# 執行結果 執行函式後a的id變了,說明全域性變數已被修改

原來全域性a=

20 原來全域性a的id

=269994208

函式內部a: 10 函式內部a的id

=269994048

執行函式後a =

10 執行函式後a的id

=269994048

Scope的作用域

scope描述的是sring容器如何新建bean的例項。spring的scope有以下幾種,通過 scope註解來實現 1 scope singleton 乙個spring容器中只有乙個bean的例項,為spring的預設配置,全容器共享乙個例項。這個單一例項會被儲存到單例快取中,並且所有針對該be...

作用域和作用域鏈 scope

作用域 函式建立時,生成的乙個js內部隱式屬性 函式儲存作用域鏈的容器。ao 函式執行期上下文 go 全域性執行期上下文。函式執行完成後,ao是要銷毀的。在次執行fun時會重新生成ao functiona var a 1 b var c 3a 執行說明 當a函式在定義時 模組一 系統生成了 scop...

spring中scope作用域

今天研究了一下scope的作用域。預設是單例模式,即scope singleton 另外scope還有prototype request session global session作用域。scope prototype 多例。再配置bean的作用域時,它的標頭檔案形式如下 接著既可以配置bean的...