python函數(shù)定義和調(diào)用過程詳解
這篇文章主要介紹了python函數(shù)定義和調(diào)用過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
我們可以創(chuàng)建一個(gè)函數(shù)來列出費(fèi)氏數(shù)列
>>> def fib(n): # write Fibonacci series up to n ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a < n: ... print(a, end=' ') ... a, b = b, a+b ... print() ... >>> # Now call the function we just defined: ... fib(2000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
函數(shù)的調(diào)用會(huì)為函數(shù)局部變量生產(chǎn)一個(gè)新的符號(hào)表。確切說,所有函數(shù)中的變量賦值都是將值存儲(chǔ)在局部符號(hào)表。變量引用首先在局部符號(hào)表中查找,然后是包含函數(shù)的局部符號(hào)表,然后是全局符號(hào)表,最后是內(nèi)置名字表。因此,局部變量不能在函數(shù)中直接賦值(除非用global),盡管他們可以被引用。
函數(shù)引用的實(shí)參在函數(shù)被調(diào)用的時(shí)候引入局部符號(hào)表,因此實(shí)參總是傳值調(diào)用(該值通常指的是對象的引用,而不是該對象的值),一個(gè)函數(shù)被另一個(gè)函數(shù)調(diào)用的時(shí)候,一個(gè)新的局部符號(hào)表在調(diào)用過程中被創(chuàng)建。python的函數(shù)是以傳址的方式工作,當(dāng)調(diào)用一個(gè)函數(shù)的時(shí)候,改變指針指向。
一個(gè)函數(shù)定義的時(shí)候會(huì)講函數(shù)名引入當(dāng)前子都表。函數(shù)名指代的值會(huì)被解析器當(dāng)作用戶定義函數(shù)的類型。這個(gè)值可以賦予其他的名字,然后其他的名字也可以被當(dāng)作函數(shù)使用,這可以作為通用的重命名機(jī)制:
>>> fib <function fib at 10042ed0> >>> f = fib >>> f(100) 0 1 1 2 3 5 8 13 21 34 55 89
你可能覺得fib不是一個(gè)函數(shù)而是一個(gè)方法,因?yàn)樗麤]有返回值,實(shí)際上,沒有帶return的函數(shù)也返回了一個(gè)值,就是none(內(nèi)建名稱),如果你想看到這個(gè)值,可以打印出來:
>>> fib(0) >>> print(fib(0)) None
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python中函數(shù)的定義及其調(diào)用
- python def 定義函數(shù),調(diào)用函數(shù)方式
- Python函數(shù)必須先定義,后調(diào)用說明(函數(shù)調(diào)用函數(shù)例外)
- Python 跨.py文件調(diào)用自定義函數(shù)說明
- python調(diào)用自定義函數(shù)的實(shí)例操作
- Python自定義函數(shù)定義,參數(shù),調(diào)用代碼解析
- Python自定義函數(shù)的創(chuàng)建、調(diào)用和函數(shù)的參數(shù)詳解
- python函數(shù)的定義和調(diào)用案例講解
相關(guān)文章
Python IDE環(huán)境之 新版Pycharm安裝詳細(xì)教程
這篇文章主要介紹了Python IDE環(huán)境之 新版Pycharm安裝教程,本文教程給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
python實(shí)現(xiàn)圖像檢索的三種(直方圖/OpenCV/哈希法)
這篇文章主要介紹了python實(shí)現(xiàn)圖像檢索的三種(直方圖/OpenCV/哈希法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python 轉(zhuǎn)移文件至云對象存儲(chǔ)的方法
對象存儲(chǔ)(Cloud Object Storage,COS)是一種存儲(chǔ)海量文件的分布式存儲(chǔ)服務(wù),具有高擴(kuò)展性、低成本、可靠安全等優(yōu)點(diǎn)。這篇文章主要介紹了Python 轉(zhuǎn)移文件至云對象存儲(chǔ),需要的朋友可以參考下2021-02-02
Python flashtext文本搜索和替換操作庫功能使用探索
本文將深入介紹Python flashtext庫,包括其基本用法、功能特性、示例代碼以及實(shí)際應(yīng)用場景,以幫助大家更好地利用這個(gè)有用的工具2024-01-01
python 使用pygame工具包實(shí)現(xiàn)貪吃蛇游戲(多彩版)
這篇文章主要介紹了python 使用pygame工具包實(shí)現(xiàn)貪吃蛇游戲,本篇給大家分享的是一個(gè)多彩版,通過實(shí)例代碼給大家講解,非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
Python實(shí)現(xiàn)連接兩個(gè)無規(guī)則列表后刪除重復(fù)元素并升序排序的方法
這篇文章主要介紹了Python實(shí)現(xiàn)連接兩個(gè)無規(guī)則列表后刪除重復(fù)元素并升序排序的方法,涉及Python針對列表的合并、遍歷、判斷、追加、排序等操作技巧,需要的朋友可以參考下2018-02-02

