新聞中心
通常,在塊中定義的變量僅在該塊中可用。在街區(qū)外無法到達(dá)。這樣的變量稱為局部變量。形式參數(shù)標(biāo)識符也表現(xiàn)為局部變量。

我們提供的服務(wù)有:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、徽縣ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的徽縣網(wǎng)站制作公司
下面的例子將強(qiáng)調(diào)這一點(diǎn)。試圖打印其作用域之外的局部變量將引發(fā)NameError 異常。
Example: Local Variable
def greet():
name = 'Steve'
print('Hello ', name) 這里,name是greet()函數(shù)的局部變量,不能在函數(shù)外部訪問。
Example: Local Variable
>>> greet()
Hello Steve
>>> name Traceback (most recent call last):
File "", line 1, in name
NameError: name 'name' is not defined 任何存在于任何函數(shù)塊之外的變量稱為全局變量。它的值可以從任何函數(shù)內(nèi)部訪問。在下面的例子中,name變量在函數(shù)定義之前被初始化。 因此,它是一個全局變量。
Example: Global Variable
name='John'
def greet():
print ("Hello ", name) 現(xiàn)在,您可以訪問全局變量name,因?yàn)樗怯珊瘮?shù)定義的。
>>> greet()
Hello Steve
>>> name
'Steve' 但是,如果我們在函數(shù)內(nèi)部為全局聲明的變量賦值,則會在函數(shù)的命名空間中創(chuàng)建一個新的局部變量。此賦值不會改變?nèi)肿兞康闹?。例?
Example: Local and Global Variables
name = 'Steve'
def greet():
name = 'Bill'
print('Hello ', name) 現(xiàn)在,改變函數(shù)內(nèi)部全局變量name的值不會影響其全局值。
>>> greet()
Hello Bill
>>> name
'Steve' 如果您需要從函數(shù)內(nèi)部訪問和更改全局變量的值,該權(quán)限由global關(guān)鍵字授予。
Example: Access Global Variables
name = 'Steve'
def greet():
global name
name = 'Bill'
print('Hello ', name) 上面將在 Python Shell中顯示以下輸出。
>>> name
'Steve'
>>> greet()
Hello Bill
>>> name
'Bill' 也可以同時使用同名的全局變量和局部變量。內(nèi)置函數(shù)globals()返回所有全局變量及其各自值的字典對象。 使用變量的名稱作為關(guān)鍵字,可以訪問和修改其值。
Example: Global Variables
name = 'Steve'
def greet():
globals()['name'] = 'James'
name='Steve'
print ('Hello ', name) 上述代碼的結(jié)果顯示了具有相同名稱的全局變量和局部變量之間的沖突以及如何解決該沖突。
>>> name
'Steve'
>>> greet()
Hello Steve
>>> name
'James' 更多信息,請?jiān)L問 Python 中的全局和局部。**
當(dāng)前文章:Python中的變量作用域
網(wǎng)址分享:http://www.dlmjj.cn/article/dpsjcoh.html


咨詢
建站咨詢
