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

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

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

répondre à tous(4)
小葫芦

Tout d'abord, votre demande est impossible et déraisonnable. Il est impossible que deux fonctions distinctes accèdent aux variables l'une dans l'autre

Vous pouvez le faire si vous utilisez des fermetures, mais je ne sais pas si c'est ce que vous voulez :

def test1():
    a = 1
    b = 2
    def test2():
        c = 3
        d = c + a
        print(d)
    return test2

test2 = test1()

test2()
巴扎黑

Vous pouvez encapsuler test1 dans une classe

#-*-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()

L'initialisation peut être placée là où vous souhaitez l'appeler, et la méthode test1() est appelée par défaut lors de l'initialisation, afin que les données soient accessibles via l'objet de la classe.

Peter_Zhu

Vous pouvez laisser test1 utiliser return pour renvoyer les valeurs de a et b :

def test1():
    a = 1
    b = 2
    return a,b

def test2():
    c = 3
    a,b = test1()
    d = c + a
    print(d)
test2()
左手右手慢动作

Haha, ce sont tous des talents, fermeture, scellement de classe, retour clair, chacun des éléments ci-dessus est une solution indépendante.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal