1.全域變數與局部變數
這兩個變數與其它語言中的變數一樣,全域變數簡言之就是在整個程式碼中都可以使用的變量,它的作用域是整個函數,而局部變數的作用域有限,往往就是在一塊程式碼區域。
需要值得注意的是:如果只是在函數中調用全域變數的值而不改變其值,那是完全沒有問題的,但是如果要在函數中改變全域變數的值而不進行特殊處理的話,Python語言對於這種情況的處理是會在自動產生一個與被呼叫的全域變數名稱一樣的局部變量,也就是屏蔽了全域變量,而對該變數的操作不會影響全域變數的值。 (雖然看著好像是改變了一樣)
例如下面程序,雖然在函數中改變了count的值,但是在函數體外打印的count的值仍是5.
count=5def Myfun(): count=10 print(count) Myfun() print(count)
如果說非要在函數內部修改全域變數的值的話,可以在函數內部使用關鍵字global來修飾該變量,這樣就是表示該操作是對於全域變數的操作,而不是產生一個與全域變數相同的局部變數。
print("======使用global之后的变量======") count=5def Myfun(): global count#声明与赋值不能一块进行 count=10 print(count) Myfun() print(count)
2.內嵌(內部)函數
簡言之,內嵌函數就是在函數內部定義的函數
值得注意的是:內部函數的調用只能在其外部的函數調用,而在之外無法調用。也就是說,在誰的內部,誰才有權利使用。
print("======内部函数的使用======")def fun1(): print("fun1()正在被调用") def fun2(): print("fun2()正在被调用") fun2() fun1()
3.閉包
閉包就是內嵌函數呼叫其外部函數的參數。
這種函數在呼叫的時候需要格外注意。
def funX(x): def funY(y): return x*y return funY print(funX(5)(8))
4.閉包中的變數問題
下面這段程式碼執行起來就會報錯。因為在內嵌函數的內部呼叫外部函數的參數,而參數x對於Fun2()這個函數來說是一個全域變量,由於屏蔽作用,造成函數出錯。
def Fun1(): x=5 def Fun2(): x*=x return x return Fun2()#Fun1()
解決上述問題的方法有兩個:
一是使用非堆疊的資料結構來解決問題
二是使用nonlocal關鍵字來解決
#一种解决办法就是使用非栈存储,使用序列等来存储def Fun1(): x=[5] def Fun2(): x[0]*=x[0] return x[0] return Fun2() print(Fun1(),"\n")#在一种解决办法就是使用nonlocal关键字def Fun3(): x=5 def Fun4(): nonlocal x x*=x return x return Fun4() print(Fun3())
rrreee
二是使用nonlocal關鍵字來解決rrreee

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1
強大的PHP整合開發環境