python - 關(guān)于函數(shù)調(diào)用的問(wèn)題
問(wèn)題描述
def test1(): a = 1 b = 2 def test2(): c = 3 d = c + a print(d)test2這邊想實(shí)現(xiàn)下面的test2調(diào)用上面test1里面的數(shù)據(jù),要怎么實(shí)現(xiàn),使用的是python3
問(wèn)題解答
回答1:首先,你這種需求是不可能且不合理的,兩個(gè)分立的函數(shù)不可能相互訪問(wèn)里面的變量的
如果用閉包倒是可以做到,不過(guò)不知道是不是你想要的:
def test1(): a = 1 b = 2 def test2():c = 3d = c + aprint(d) return test2test2 = test1()test2()回答2:
可以將test1封裝為一個(gè)類
#-*-coding:utf8-*-class test1(): '''docstring for test1''' def __init__(self):self.a=0self.b=0self.test1() def test1(self):self.a=1self.b=2test = test1()def test2(): c=3 d=c+test.a print (d)test2()
初始化可以放在你想調(diào)用的位置,并且在初始化的時(shí)候默認(rèn)調(diào)用了test1()方法,這樣就可以通過(guò)類的對(duì)象訪問(wèn)數(shù)據(jù)了。
回答3:可以讓test1用return來(lái)返回a和b的值:
def test1(): a = 1 b = 2 return a,bdef test2(): c = 3 a,b = test1() d = c + a print(d)test2()回答4:
哈哈,都是人才,閉包、封類、明確返回,以上每一個(gè)都是獨(dú)立的解決辦法。
相關(guān)文章:
1. android - weex 項(xiàng)目createInstanceReferenceError: Vue is not defined2. android - 哪位大神知道java后臺(tái)的api接口的對(duì)象傳到前端后輸入日期報(bào)錯(cuò),是什么情況?求大神指點(diǎn)3. PHPExcel表格導(dǎo)入數(shù)據(jù)庫(kù)怎么導(dǎo)入4. pdo 寫(xiě)入到數(shù)據(jù)庫(kù)的內(nèi)容為中文的時(shí)候?qū)懭雭y碼5. javascript - 如圖,百度首頁(yè),查看源代碼為什么什么都沒(méi)有?6. vue2.0+webpack 如何使用bootstrap?7. PHP類封裝的插入數(shù)據(jù),總是插入不成功,返回false;8. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問(wèn)?9. 微信渠道二維碼怎么使用?10. html5 - html元素select下拉列表在原生app里面為什么不能彈框顯示?
