下面的例子演示了用3種方法來在外部引用函數(shù)內(nèi)部定義的列表:
我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、欽北ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的欽北網(wǎng)站制作公司
#返回函數(shù)內(nèi)部定義的列表
def int_list1():
l=[1,2]
return l
#將函數(shù)內(nèi)部列表定義成全局的
def int_list2():
global l
l=[3,4]
#將函數(shù)內(nèi)部列表定義成函數(shù)的一個屬性
def int_list3():
l=[5,6]
int_list3.l=l
print(int_list1())
int_list2()
print(l)
int_list3()
print(int_list3.l)
這是截圖:
變量的引用
變量和數(shù)據(jù)都是保存在內(nèi)存中的
變量和數(shù)據(jù)是分開存儲的
數(shù)據(jù)保存在內(nèi)存中某個位置,通過地址來標(biāo)記
變量保存的是數(shù)據(jù)的地址,通過地址可以找到數(shù)據(jù)在內(nèi)存空間的位置
把變量保存數(shù)據(jù)地址的過程稱為引用
變量的重新賦值修改的是變量中引用數(shù)據(jù)的內(nèi)存地址
變量之間的賦值實(shí)際是引用的傳遞
函數(shù)參數(shù)的傳遞,本質(zhì)也是引用的傳遞
函數(shù)的返回值本身也是引用的傳遞
可變和不可變類型
不可變類型,內(nèi)存中的數(shù)據(jù)不允許被修改:數(shù)字類型(int,bool,float,complex,long(2,x)、字符串、元組(tuple)
可變類型,內(nèi)存中的數(shù)據(jù)可以被修改:列表list、字典dict
無論是可變還是不可變數(shù)據(jù)類型,通過賦值語句,都會改變變量的引用
Hash函數(shù)只能接收不可變數(shù)據(jù)類型,字典的鍵也只能是不可變數(shù)據(jù)類型,字典的value值可以是任意數(shù)據(jù)類型
局部變量
1.在函數(shù)內(nèi)部定義的變量就是局部變量(作用范圍只能是當(dāng)前函數(shù)內(nèi)部)
2.在函數(shù)外部無法直接訪問局部變量
3.不同的函數(shù)中可以定義同名的局部變量
4.局部變量的生命周期:從定義變量時開始,到函數(shù)運(yùn)行結(jié)束
全局變量
1.在所有函數(shù)外邊定義的變量就是全局變量
2.讓所有函數(shù)都能訪問到,可以作為函數(shù)通信的橋梁
3.一般情況下,為了和普通變量的區(qū)別,需要加上g_或gl_前綴
4.全局變量一般放在所有函數(shù)的最上面
5.在函數(shù)內(nèi)部修改全局變量,必須要加上global關(guān)鍵字,如果不加global只是定義了一個同名的局部變量
函數(shù)的多個返回值
如果知道每個函數(shù)的名字,可以from math import 函數(shù)1,函數(shù)2,...,函數(shù)n
如果導(dǎo)入全部函數(shù)就from math import *,但是一般不建議這么做,還是import math比較好。
選中需要查看的函數(shù)(光標(biāo)移到函數(shù)所在的位置),然后使用eclipse快捷鍵Ctrl+Shift+G,然后就會在search窗口中看到函數(shù)調(diào)用的樹狀結(jié)構(gòu)圖。
以最簡單的一個代碼為例:
class A:
s="hello"
def p(self):
? print(self.s)
if __name__ == '__main__':
a=A()
a.p()
光標(biāo)移到第4行p的位置,然后Ctrl+Shift+G,得到如下所示:
文章題目:python的函數(shù)引用 Python如何引用函數(shù)
分享路徑:http://chinadenli.net/article28/dodshcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、網(wǎng)站改版、服務(wù)器托管、全網(wǎng)營銷推廣、網(wǎng)站排名、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)