def test1(): a = 1 b = 2 def test2(): c = 3 d = c + a print(d) test2 这边想实现下面的test2调用上面test1里面的数据,要怎么实现,使用的是python3
欢迎选择我的课程,让我们一起见证您的进步~~
首先,你這種需求是不可能且不合理的,兩個分立的函數不可能互相訪問裡面的變數的
如果用閉包倒是可以做到,不過不知道是不是你想要的:
def test1(): a = 1 b = 2 def test2(): c = 3 d = c + a print(d) return test2 test2 = test1() test2()
可以將test1封裝為一個類別
#-*-coding:utf8-*- class test1(): """docstring for test1""" def __init__(self): self.a=0 self.b=0 self.test1() def test1(self): self.a=1 self.b=2 test = test1() def test2(): c=3 d=c+test.a print (d) test2()
初始化可以放在你想要呼叫的位置,並且在初始化的時候預設呼叫了test1()方法,這樣就可以透過類別的物件存取資料了。
可以讓test1用return來回傳a和b的值:
def test1(): a = 1 b = 2 return a,b def test2(): c = 3 a,b = test1() d = c + a print(d) test2()
哈哈,都是人才,閉包、封類、明確返回,以上每一個都是獨立的解決辦法。
首先,你這種需求是不可能且不合理的,兩個分立的函數不可能互相訪問裡面的變數的
如果用閉包倒是可以做到,不過不知道是不是你想要的:
可以將test1封裝為一個類別
初始化可以放在你想要呼叫的位置,並且在初始化的時候預設呼叫了test1()方法,這樣就可以透過類別的物件存取資料了。
可以讓test1用return來回傳a和b的值:
哈哈,都是人才,閉包、封類、明確返回,以上每一個都是獨立的解決辦法。