python變數的作用域

silencement
發布: 2019-06-10 15:51:45
原創
2884 人瀏覽過

python變數的作用域

變數作用域:

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

全域變數所有作用域都可讀,局部變數只能在本函數可讀

函數在讀取變數時,優先讀取函數本身自有的局部變量,再去讀取全域變數

全域變數 

讀,均可讀取

賦值,global

#字典,清單可修改

全域變數全大寫

例如

name = 'Tim' #全局变量

def f1():
    age = 18 #局部变量
    print(age,name)

def f2():
    age=19 #局部变量
    print(age,name)

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', 'mike', 'Eric']
函数外NAME1: ['Eric', 'Jeson']
函数外NAME3: 123
登入後複製

以上是python變數的作用域的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板