日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【学习笔记】34、函数是Python的头等对象

發布時間:2025/3/20 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习笔记】34、函数是Python的头等对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數是Python的頭等對象

我們可以把函數分配給變量、存儲在數據結構中、作為參數傳遞給其他函數,甚至作為其他函數的返回值等。

函數是對象

Python程序中所有的數據都是由對象或者對象之間的關系來表示的。

字符串、列表、模塊等都是對象,函數也不例外。

?

函數對象及其名稱是相互獨立的實體。

?

Python在創建函數時為每一個函數附加一個用于調試的字符串標識符,使用“__name__”屬性可以訪問這個內部標識符。

雖然函數的“__name__”是yell,但是已經無法使用這個名稱在代碼中訪問函數對象了,名稱標識符僅僅用來輔助調試,指向函數的變量和函數本身實際上是彼此獨立的。

函數可存儲在數據結構中

由于函數是頭等對象,因此可以像其他對象一樣存儲在數據結構中。

訪問存儲在列表中函數對象與訪問其他類型的對象是一樣的。

?

函數可傳遞給其他函數

由于函數是對象,因此可以將其作為參數傳遞給其他函數。

?

將函數對象作為參數傳遞給其他函數的功能非常強大,可以用來將程序中的行為抽象出來并傳遞出去。能接受其他函數作為參數的函數被稱為“高階函數”。Python中具有代表性的高階函數是內置的map函數,map接受一個函數對象和一個可迭代的對象,然后在可迭代對象中的每一個元素上調用該函數來生成結果。

函數可以嵌套

Python允許函數中定義函數,這種稱之為“嵌套函數”或“內部函數”。

?

如果要在外部訪問嵌套的內部函數,需要將內部函數返回給父函數的調用者。

?

函數可捕捉局部狀態

內部函數不僅可以從父函數返回,還可以捕獲并攜帶父函數的某些狀態。

?

內部函數沒有text參數,但是仍可以訪問在父函數中定義的text參數,這種行為就稱之為“詞法閉包”(lexical colsure),簡稱閉包。閉包在程序流不在閉包范圍內的情況下,也能記住封閉作用域(enclosing scope)中的值。

實際上,這就意味著函數不僅可以返回行為,還可以預先配置這些行為。

?

對象也可作為函數使用

Python中所有的函數都是對象,反之則不成立,有些對象不是函數,但是也可以調用,因此在許多情況下可以將其當成函數來看待。

如果一個對象是可調用的,說明它可以使用圓括號函數調用的語法,甚至可以傳入參數,這些都靠“__call__”方法完成。

?

一個對象是否可以調用,Python內置了callable函數。

?

?

總結

以上是生活随笔為你收集整理的【学习笔记】34、函数是Python的头等对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。