python - 关于函数调用的问题
天蓬老师
天蓬老师 2017-04-18 10:18:48
0
4
705
def test1():
    a = 1
    b = 2
    
def test2():
    c = 3
    d = c + a
    print(d)
test2

这边想实现下面的test2调用上面test1里面的数据,要怎么实现,使用的是python3
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(4)
小葫芦

首先,你這種需求是不可能且不合理的,兩個分立的函數不可能互相訪問裡面的變數的

如果用閉包倒是可以做到,不過不知道是不是你想要的:

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()方法,這樣就可以透過類別的物件存取資料了。

Peter_Zhu

可以讓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()
左手右手慢动作

哈哈,都是人才,閉包、封類、明確返回,以上每一個都是獨立的解決辦法。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板