溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python全局變量和局部變量怎么創(chuàng)建

發(fā)布時(shí)間:2022-08-17 16:58:04 來(lái)源:億速云 閱讀:273 作者:iii 欄目:開發(fā)技術(shù)

這篇“Python全局變量和局部變量怎么創(chuàng)建”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Python全局變量和局部變量怎么創(chuàng)建”文章吧。

前言

全局變量是那些沒(méi)有在任何函數(shù)內(nèi)部定義并具有全局范圍的變量,而局部變量是那些在函數(shù)內(nèi)部定義的變量,其范圍僅限于該函數(shù)。換句話說(shuō),我們可以說(shuō)局部變量只能在初始化它的函數(shù)內(nèi)部訪問(wèn),而全局變量在整個(gè)程序和每個(gè)函數(shù)內(nèi)部都可以訪問(wèn)。局部變量是那些在函數(shù)內(nèi)部初始化并且僅屬于該特定函數(shù)的變量。它不能在函數(shù)之外的任何地方訪問(wèn)。讓我們看看如何創(chuàng)建一個(gè)局部變量。

示例: 創(chuàng)建局部變量

def f():

	# local variable
	s = "I love python"
	print(s)


# 驅(qū)動(dòng)程序代碼
f()

輸出:

I love python

如果我們嘗試在函數(shù)外部使用這個(gè)局部變量,那么讓我們看看會(huì)發(fā)生什么。

例子:

def f():
	
	# local variable
	s = "I love python"
	print("Inside Function:", s)

# 驅(qū)動(dòng)程序代碼
f()
print(s)

輸出:

NameError: name 's' is not defined

全局變量

這些是在任何函數(shù)之外定義的并且可以在整個(gè)程序中訪問(wèn)的那些,即在每個(gè)函數(shù)的內(nèi)部和外部。讓我們看看如何創(chuàng)建一個(gè)全局變量。

示例: 定義和訪問(wèn)全局變量

# This function uses global variable s
def f():
	print("Inside Function", s)

# Global scope
s = "I love python"
f()
print("Outside Function", s)

輸出:

Inside Function I love python
Outside Function I love python

變量 s 被定義為全局變量,既可以在函數(shù)內(nèi)部使用,也可以在函數(shù)外部使用。

注意: 由于沒(méi)有局部變量,因此將使用全局變量的值,但請(qǐng)確保局部變量和全局變量應(yīng)具有相同的名稱。

現(xiàn)在,如果有一個(gè)同名的變量在函數(shù)內(nèi)部以及全局初始化怎么辦?,F(xiàn)在問(wèn)題來(lái)了,局部變量是否會(huì)對(duì)全局變量產(chǎn)生一些影響,反之亦然,如果我們?cè)诤瘮?shù) f() 中更改變量的值會(huì)發(fā)生什么?它也會(huì)影響全局變量嗎?我們?cè)谙旅娴拇a中對(duì)其進(jìn)行測(cè)試:

# 該函數(shù)有一個(gè)名稱與 s 相同的變量。
def f():
	s = "Me too."
	print(s)


# 全局范圍
s = "I love python"
f()
print(s)

輸出:

Me too.
I love python

如果在函數(shù)范圍內(nèi)也定義了具有相同名稱的變量,那么它將僅打印函數(shù)內(nèi)部給出的值,而不是全局值。 

問(wèn)題是,如果我們嘗試更改函數(shù)內(nèi)部的全局變量的值會(huì)怎樣。讓我們用下面的例子來(lái)看看。

例子:

# 該函數(shù)使用全局變量 s
def f():
	s += 'GFG'
	print("Inside Function", s)


# Global scope
s = "I love python"
f()

輸出:

UnboundLocalError: local variable 's' referenced before assignment

為了使上述程序正常工作,我們需要使用“global”關(guān)鍵字。讓我們看看這個(gè)全局關(guān)鍵字是什么。

全局關(guān)鍵字

如果我們想要進(jìn)行賦值或更改全局變量,我們只需要在函數(shù)中使用global 關(guān)鍵字。 打印和訪問(wèn)不需要全局。由于在 f() 中對(duì) s 的賦值,Python“假設(shè)”我們需要一個(gè)局部變量,因此第一條語(yǔ)句會(huì)拋出錯(cuò)誤消息。如果沒(méi)有將其聲明為全局變量,則在函數(shù)內(nèi)部更改或創(chuàng)建的任何變量都是局部變量。要告訴 Python,我們要使用全局變量,我們必須使用關(guān)鍵字 “global” ,如以下示例所示: 

示例 1: 使用全局關(guān)鍵字

# 此函數(shù)修改全局變量's'
def f():
	global s
	s += ' HY'
	print(s)
	s = "Look for Haiyong Python Section"
	print(s)

# 全局范圍
s = "Python is great!"
f()
print(s)

輸出:

Python is great! HY
Look for Haiyong Python Section
Look for Haiyong Python Section

現(xiàn)在沒(méi)有歧義了。 

示例 2: 使用全局變量和局部變量

a = 1

# 使用全局,因?yàn)闆](méi)有局部“a”
def f():
	print('Inside f() : ', a)

# 變量“a”被重新定義為局部變量
def g():
	a = 2
	print('Inside g() : ', a)

# 使用 global 關(guān)鍵字修改全局 'a'
def h():
	global a
	a = 3
	print('Inside h() : ', a)


# 全局范圍
print('global : ', a)
f()
print('global : ', a)
g()
print('global : ', a)
h()
print('global : ', a)

輸出:

global :  1
Inside f() :  1
global :  1
Inside g() :  2
global :  1
Inside h() :  3
global :  3

以上就是關(guān)于“Python全局變量和局部變量怎么創(chuàng)建”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI