新聞中心
python 一個(gè)函數(shù)怎么使用另一個(gè)函數(shù)內(nèi)的變量
例如一個(gè)函數(shù)內(nèi)有一個(gè)變量i,怎么在函數(shù)外或另一個(gè)函數(shù)中調(diào)用或更改它。新手學(xué)習(xí),謝謝。

10余年的河津網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整河津建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“河津網(wǎng)站設(shè)計(jì)”,“河津網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
==============================
不能在函數(shù)外更改某函數(shù)里的局部變量,因?yàn)槊慨?dāng)你實(shí)例化那個(gè)函數(shù)的時(shí)候,那個(gè)函數(shù)里面的局部變量也會被重新賦值,重新定義,談何更改呢?
這一個(gè)全部變量和局部變量的問題,如果要實(shí)現(xiàn)樓主說的,必須使用全局變量(類中的self):
================bianliang.py===========
#coding: utf-8
i = 0 #定義一個(gè)全局變量i
def a():
'''
打印出i的值
'''
print i
def b():
global i
a() #調(diào)用a方法
print i #打印i
i = 1000 #重新賦值i
print i #打印i
a() #再次調(diào)用a方法
b()
=================================
%python bianliang.py
1000
1000
這個(gè)py文件里面使用了一個(gè)全局變量i,實(shí)現(xiàn)了a方法和b方法共用參數(shù)i
python中變量的引用、可變和不可變類型、局部變量和全局變量
變量的引用
變量和數(shù)據(jù)都是保存在內(nèi)存中的
變量和數(shù)據(jù)是分開存儲的
數(shù)據(jù)保存在內(nèi)存中某個(gè)位置,通過地址來標(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í)開始,到函數(shù)運(yùn)行結(jié)束
全局變量
1.在所有函數(shù)外邊定義的變量就是全局變量
2.讓所有函數(shù)都能訪問到,可以作為函數(shù)通信的橋梁
3.一般情況下,為了和普通變量的區(qū)別,需要加上g_或gl_前綴
4.全局變量一般放在所有函數(shù)的最上面
5.在函數(shù)內(nèi)部修改全局變量,必須要加上global關(guān)鍵字,如果不加global只是定義了一個(gè)同名的局部變量
函數(shù)的多個(gè)返回值
python 函數(shù)外面的變量能在里面使用嗎?
這涉及到變量的生命周期問題,一般的,在函數(shù)里面聲明的變量在函數(shù)外是不起作用的。
一個(gè)比較簡單的解決辦法是你在函數(shù)外就先聲明這個(gè)變量,聲明成全局變量。然后在函數(shù)里面進(jìn)行操作和賦值。
最后就能在函數(shù)外獲取變量的值了。例如:
123456 x = 0def a(): x = 2if __name__ == '__main__': a() print x
最終x打印出來的結(jié)果就是2
本文標(biāo)題:python函數(shù)引用變量 python變量名稱引用變量
網(wǎng)頁地址:http://www.dlmjj.cn/article/dogpdjd.html


咨詢
建站咨詢
