1. 程式人生 > 程式設計 >python變數的作用域是什麼

python變數的作用域是什麼

變數作用域:

一般在函式體外定義的變數成為全域性變數,在函式內部定義的變數稱為區域性變數。

全域性變數所有作用域都可讀,區域性變數只能在本函式可讀

函式在讀取變數時,優先讀取函式本身自有的區域性變數,再去讀全域性變數

全域性變數

讀,均可讀

賦值,global

字典,列表可修改

全域性變數全大寫

例如

name = 'Tim' #全域性變數
def f1():
  age = 18 #區域性變數
  print(age,name)
 def f2():
  age=19 #區域性變數
f1()
f2()
>>>
18 Tim
19 Tim

在函式內部也可以定義全域性變數:

name = 'Tim' #全域性變數
def f1():
  age = 18 #區域性變數
  global name #定義全域性變數
  name = 'Eric'
  print(age,name)
f1()
print(name)

全域性變數預設可讀,如果需要改變全域性變數的值,需要在函式內部使用global定義

特殊:列表,字典,可修改,但不能重新賦值,如果需要重新賦值,需要在函式內部使用global定義全域性變數

NAME = ['Tim','mike'] #全域性變數
NAME1 = ['Eric','Jeson'] #全域性變數
NAME3 = ['Tom','jane'] #全域性變數
def f1():
  NAME.append('Eric') #列表的append方法可改變外部全域性變數的值
  print('函式內NAME: %s'%NAME)
  NAME1 = '123' #重新賦值不可改變外部全域性變數的值
  print('函式內NAME1: %s'%NAME1)
  global NAME3 #如果需要重新給列表賦值,需要使用global定義全域性變數
  NAME3 = '123'
  print('函式內NAME3: %s'%NAME3)
f1()
print('函式外NAME: %s'%NAME)
print('函式外NAME1: %s'%NAME1)
print('函式外NAME3: %s'%NAME3)
>>>

函式內NAME: ['Tim','mike','Eric']

函式內NAME1: 123

函式內NAME3: 123

函式外NAME: ['Tim','Eric']

函式外NAME1: ['Eric','Jeson']

函式外NAME3: 123

到此這篇關於python變數的作用域是什麼的文章就介紹到這了,更多相關python變數的作用域內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!