recherche

Maison  >  Questions et réponses  >  le corps du texte

python - 关于函数调用的问题

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

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

répondre à tous(4)je répondrai

  • 高洛峰

    高洛峰2017-04-18 10:20:48

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

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:20:48

    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.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:20:48

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

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 10:20:48

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

    répondre
    0
  • Annulerrépondre