Python變量作用域(四個(gè)主要作用域)
在程序中定義一個(gè)變量時(shí),這個(gè)變量是有作用域的,變量的作用范圍被稱為它的作用域。
四種主要作用域
- 局部作用域
- 嵌套函數(shù)作用域
- 全局作用域
- 內(nèi)置作用域
1. 局部作用域
def my_function():
x = 10 # 局部變量
print(x) # 可以訪問
my_function() # 輸出: 10
# print(x) # 這里會(huì)報(bào)錯(cuò),x在函數(shù)外部不可訪問2. 嵌套函數(shù)作用域
在嵌套函數(shù)中,內(nèi)部函數(shù)可以訪問外部函數(shù)的變量。
def outer():
x = "outer" # 嵌套作用域變量
def inner():
print(x) # 可以訪問外部函數(shù)的變量
inner()
outer() # 輸出: outer3. 全局作用域
在模塊級(jí)別定義的變量具有全局作用域。
x = "global" # 全局變量
def my_function():
print(x) # 可以訪問全局變量
my_function() # 輸出: global
print(x) # 輸出: global4. 內(nèi)置作用域
在Python中,內(nèi)置作用域(Built-in Scope) 是最外層的作用域,包含了所有內(nèi)置函數(shù)、異常和對(duì)象,如print(), len(), True等
內(nèi)置作用域中的名稱在任何地方都可用,無需導(dǎo)入:
# 這些函數(shù)都來自內(nèi)置作用域
print("Hello, World!") # print 是內(nèi)置函數(shù)
len([1, 2, 3]) # len 是內(nèi)置函數(shù)
max(1, 2, 3) # max 是內(nèi)置函數(shù)常用的內(nèi)置函數(shù)分類
數(shù)學(xué)函數(shù)
# 數(shù)值計(jì)算 print(abs(-5)) # 絕對(duì)值: 5 print(round(3.14159, 2)) # 四舍五入: 3.14 print(pow(2, 3)) # 冪運(yùn)算: 8 print(divmod(10, 3)) # 商和余數(shù): (3, 1)
類型轉(zhuǎn)換
# 類型轉(zhuǎn)換函數(shù)
print(int("123")) # 字符串轉(zhuǎn)整數(shù): 123
print(float("3.14")) # 字符串轉(zhuǎn)浮點(diǎn)數(shù): 3.14
print(str(123)) # 轉(zhuǎn)字符串: "123"
print(bool(0)) # 轉(zhuǎn)布爾值: False輸入輸出
# 輸入輸出函數(shù)
name = input("請(qǐng)輸入你的名字: ")
print(f"你好, {name}!")# # 文件操作
with open('text.txt', 'w') as f:
f.write("Hello, World!")
內(nèi)置異常
# 常見內(nèi)置異常
try:
x = 1 / 0
except ZeroDivisionError as e: # ZeroDivisionError是內(nèi)置異常
print(f"捕獲到異常: {e}")
# 其他常見內(nèi)置異常
builtin_exceptions = [
'ArithmeticError', 'AssertionError', 'AttributeError',
'EOFError', 'ImportError', 'IndexError', 'KeyError',
'KeyboardInterrupt', 'NameError', 'TypeError', 'ValueError'
]5.變量遮蔽問題
當(dāng)不同作用域有同名變量時(shí),內(nèi)部作用域的變量會(huì)"遮蔽"外部作用域的變量。
x = "global"
def test():
x = "local" # 遮蔽了全局變量x
print(x) # 輸出: local
test()
print(x) # 輸出: global6.修改作用域的關(guān)鍵字
global 關(guān)鍵字
用于在函數(shù)內(nèi)部修改全局變量。
x = 10
def modify_global():
global x
x = 20 # 修改全局變量
modify_global()
print(x) # 輸出: 20nonlocal關(guān)鍵字
用于在嵌套函數(shù)中修改外部函數(shù)的變量。
def outer():
x = 10
def inner():
nonlocal x
x = 20 # 修改外部函數(shù)的變量
inner()
print(x) # 輸出: 20
outer()到此這篇關(guān)于Python變量作用域(四個(gè)主要作用域)的文章就介紹到這了,更多相關(guān)Python變量作用域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 遞歸調(diào)用返回None的問題及解決方法
這篇文章主要介紹了python 遞歸調(diào)用返回None的問題,本文通過實(shí)例代碼給大家記錄了解決方案,代碼簡(jiǎn)單易懂,非常不錯(cuò)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Python創(chuàng)建exe運(yùn)行器和截圖工具的示例詳解
本文我們將探討如何使用Python和wxPython創(chuàng)建一個(gè)強(qiáng)大而實(shí)用的桌面應(yīng)用程序,可以遍歷指定文件夾中的所有EXE文件,感興趣的小伙伴可以了解一下2024-10-10
python網(wǎng)絡(luò)爬蟲基于selenium爬取斗魚直播信息
目前是直播行業(yè)的一個(gè)爆發(fā)期,由于國(guó)家對(duì)直播行業(yè)進(jìn)行整頓和規(guī)范,現(xiàn)在整個(gè)直播行業(yè)也在穩(wěn)固發(fā)展。隨著互聯(lián)網(wǎng)和網(wǎng)絡(luò)直播市場(chǎng)的快速發(fā)展,相信未來還有廣闊的發(fā)展前景。今天用selenium爬取一下斗魚直播信息將代碼分享給大家2022-03-03
學(xué)習(xí)python類方法與對(duì)象方法
這篇文章主要和大家一起學(xué)習(xí)python類方法與對(duì)象方法,從一個(gè)簡(jiǎn)單例子出發(fā)進(jìn)行學(xué)習(xí),感興趣的小伙伴們可以參考一下2016-03-03
python matplotlib.pyplot.plot()參數(shù)用法
這篇文章主要介紹了python matplotlib.pyplot.plot()參數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
關(guān)于Python參數(shù)解析器argparse的應(yīng)用場(chǎng)景
這篇文章主要介紹了關(guān)于Python參數(shù)解析器argparse的應(yīng)用場(chǎng)景,argparse 模塊使編寫用戶友好的命令行界面變得容易,程序定義了所需的參數(shù),而 argparse 將找出如何從 sys.argv 中解析這些參數(shù),需要的朋友可以參考下2023-08-08
Python內(nèi)置函數(shù)的用法實(shí)例教程
這篇文章主要介紹了Python內(nèi)置函數(shù)的用法,包括求絕對(duì)值的abs()函數(shù)及數(shù)值類型轉(zhuǎn)換函數(shù)等,需要的朋友可以參考下2014-09-09

