局部變量是不可以再函數(shù)外訪問的。

創(chuàng)新互聯(lián)建站是專業(yè)的茫崖網(wǎng)站建設公司,茫崖接單;提供網(wǎng)站設計制作、成都做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行茫崖網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
如果堅持訪問,有兩個辦法:
1)把a修改成全局變量;
2)把function2定義在function1的內(nèi)部。
def 函數(shù)名():? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ?函數(shù)體? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?return? 返回值? ? ? ? ? ? ? ? ? ? ? ? ? ??
def 函數(shù)名(非可選參數(shù),可選參數(shù)):
???函數(shù)體?
return 返回值
def 函數(shù)名(參數(shù),*b):
? ? 函數(shù)體
? ? return 返回值
函數(shù)名 = lambda 參數(shù) : 表達式
例1:f = lambda x , y? :? x + y? ? ? ? ? ? ? ? ? ? ? ??
調(diào)用:f(6 + 8)? ? ?輸出:14? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
例2:?f = lambda : "沒有參數(shù)的lambda函數(shù)!"
調(diào)用:?print(f())? ? 輸出: 沒有參數(shù)的lambda函數(shù)!
1234def aaa(): s = 5 return sprint aaa()
或者:
12345def aaa(): global s s = 5aaa()print s
要在函數(shù)外部訪問函數(shù)的內(nèi)部變量,要么使用return將其返回到外部,要么用global定義為全局變量。推薦前一種。
def只是定義函數(shù),你還沒有調(diào)用和執(zhí)行該函數(shù)。此外,要在控制臺輸出,你可以在函數(shù)內(nèi)部寫上print s+3 ,然后調(diào)用函數(shù)aaa()。
或者定義一個類:
1234class aaa: s = 5b = aaa #初始化一個類的實例print b.s #當然,你也可以直接使用aaa.s
例如一個函數(shù)內(nèi)有一個變量i,怎么在函數(shù)外或另一個函數(shù)中調(diào)用或更改它。新手學習,謝謝。
==============================
不能在函數(shù)外更改某函數(shù)里的局部變量,因為每當你實例化那個函數(shù)的時候,那個函數(shù)里面的局部變量也會被重新賦值,重新定義,談何更改呢?
這一個全部變量和局部變量的問題,如果要實現(xiàn)樓主說的,必須使用全局變量(類中的self):
================bianliang.py===========
#coding:
utf-8
i
=
#定義一個全局變量i
def
a():
'''
打印出i的值
'''
i
def
b():
global
i
a()
#調(diào)用a方法
i
#打印i
i
=
1000
#重新賦值i
i
#打印i
a()
#再次調(diào)用a方法
b()
=================================
%python
bianliang.py
1000
1000
這個py文件里面使用了一個全局變量i,實現(xiàn)了a方法和b方法共用參數(shù)i
標題名稱:Python訪問函數(shù)變量 python 調(diào)用函數(shù)中的變量
文章出自:http://chinadenli.net/article8/hhjoip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、網(wǎng)站導航、網(wǎng)站收錄、網(wǎng)站建設、網(wǎng)站設計公司、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)