Python局部變量與全局變量區(qū)別原理解析
1、局部變量
name = "Yang Li"
def change_name(name):
print("before change:",name)
name = "你好"
print("after change", name)
change_name(name)
print("在外面看看name改了么?",name)
輸出:
before change: Yang Li
after change 你好
在外面看看name改了么? Yang Li
2、全局變量
NAME = "alex"
def yangjian():
global NAME # 已經(jīng)聲明,NAME就是全局的的那個變量
print('1我的名字', NAME)
NAME = "land" # 修改 全局的變量
print('2我的名字', NAME)
def qupengfei():
name = "yang"
print('3我的名字', NAME)
yangjian()
qupengfei()
輸出:
1我的名字 alex 2我的名字 land 3我的名字 yang ######## 全局變量變量名大寫 ######## 局部變量變量名小寫 #函數(shù)中 優(yōu)先讀取局部變量,能讀取全局變量,無法對全局變量重新賦值;但是對于可變類型,可以對內(nèi)部元素進(jìn)行操作;如果函數(shù)中有g(shù)lobal關(guān)鍵字,變量本質(zhì)上就是全局的那個變量,可讀取可賦值
3、nonlocal
name = "剛娘"
def weihou():
name = "陳卓"
def weiweihou():
nonlocal name # nonlocal,指定上一級變量,如果沒有就繼續(xù)往上直到找到為止
name = "冷靜"
print(name)
weiweihou()
print(name)
print(name)
weihou()
print(name)
# 剛娘
# 陳卓
# 陳卓
# 剛娘
全局與局部變量
在子程序中定義的變量稱為局部變量,在程序的一開始定義的變量稱為全局變量。
全局變量作用域是整個程序,局部變量作用域是定義該變量的子程序。
當(dāng)全局變量與局部變量同名時:
在定義局部變量的子程序內(nèi),局部變量起作用;在其它地方全局變量起作用。
函數(shù)返回值
要想獲取函數(shù)的執(zhí)行結(jié)果,就可以用return語句把結(jié)果返回
注意:
函數(shù)在執(zhí)行過程中只要遇到return語句,就會停止執(zhí)行并返回結(jié)果,so 也可以理解為 return 語句代表著函數(shù)的結(jié)束
如果未在函數(shù)中指定return,那這個函數(shù)的返回值為None
嵌套函數(shù)
name = "Alex"
def change_name():
name = "Alex2"
def change_name2():
name = "Alex3"
print("第3層打印",name)
change_name2() #調(diào)用內(nèi)層函數(shù)
print("第2層打印",name)
change_name()
print("最外層打印",name)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python實現(xiàn)base64字符串與圖片互轉(zhuǎn)的詳細(xì)步驟
要將一個 Base64 編碼的字符串轉(zhuǎn)換為圖片文件并保存下來,可以使用 Python 的 base64 模塊來實現(xiàn),這一過程包括解碼 Base64 字符串為二進(jìn)制數(shù)據(jù),然后將這些數(shù)據(jù)寫入到目標(biāo)文件中,以下是一個詳細(xì)的步驟演示,幫助你輕松完成這一轉(zhuǎn)換,需要的朋友可以參考下2025-06-06
python調(diào)用pytorch的clip模型時報錯原因及解決方法
這篇文章主要介紹了python調(diào)用pytorch的clip模型時報錯,本文給大家分享問題原因及解決方法,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
pytorch模型保存與加載中的一些問題實戰(zhàn)記錄
一般來說,保存模型是把參數(shù)全部用model.cpu().state_dict(),然后加載模型時一般用model.load_state_dict(torch.load(model_path)),下面這篇文章主要給大家介紹了關(guān)于pytorch模型保存與加載中的一些問題實戰(zhàn)記錄,需要的朋友可以參考下2022-10-10
Python Web框架Flask中使用新浪SAE云存儲實例
這篇文章主要介紹了Python Web框架Flask中使用新浪SAE云存儲實例,本文是對SAE云存儲的簡單封裝,需要的朋友可以參考下2015-02-02

