python變數的作用域是什麼

2022-09-28 21:09:33 字數 1398 閱讀 9441

變數作用域:

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

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

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

全域性變數

讀,均可讀

賦值,global

字典,列表可修改

全域性變數全大寫

例如name = 'tim' #全域性變數

def f1():

age = 18 #區域性變數

print(age,name)

def f2():

age=19 #區域性變數

f1()

f2()

>weegjeg>>

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)

pri程式設計客棧nt('函式外name1: %s'%name1)

print('函式外name3: %s'%name3)

>>>

函式內name: ['tim', 'mike', 'eric']

函式內name1: 123

函式內name3: 123

函式外name: ['tim', 程式設計客棧'mike', 'eric']

函式外name1: ['eric', 'jeson']

函式外name3: 123

python變數的作用域是什麼?

變數作用域 一般在函式體外定義的變數成為全域性變數,在函式內部定義的變數稱為區域性變數。全域性變數所有作用域都可讀,區域性變數只能在本函式可讀 函式在讀取變數時,優先讀取函式本身自有的區域性變數,再去讀全域性變數 全域性變數 讀,均可讀 賦值,global 字典,列表可修改 全域性變數全大寫 例如n...

作用域是什麼

引擎會呼叫編譯器對源 進行編譯,其中編譯器編譯過程中遇到變數宣告會將其新增到當前作用域中,引擎執行編譯過後的 遇到變數時會去作用域查詢。當程式中含有var a 2時,會分為 var a a 2 兩個部分 首先是編譯器檢視作用域,如果作用域已含有a則忽略該宣告 var a 繼續編譯,否則會要求作用域在...

python變數作用域

變數作用域 scope 在python中是乙個容易掉坑的地方。什麼是作用域 作用域簡單說就是乙個變數的命名空間。中變數被賦值的位置,就決定了哪些範圍的物件可以訪問這個變數,這個範圍就是命名空間。python賦值時生成了變數名,當然作用域也包括在內。python的作用域一共有4中,分別是 l loca...