Rumah  >  Soal Jawab  >  teks badan

python - 关于函数调用的问题

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

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

membalas semua(4)saya akan balas

  • 高洛峰

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

    Pertama sekali, permintaan anda adalah mustahil dan tidak munasabah. Adalah mustahil untuk dua fungsi berasingan untuk mengakses pembolehubah di dalam satu sama lain

    Anda boleh melakukannya jika anda menggunakan penutupan, tetapi saya tidak tahu sama ada itu yang anda mahukan:

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

    balas
    0
  • 巴扎黑

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

    Anda boleh merangkumkan ujian1 ke dalam kelas

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

    Inisialisasi boleh diletakkan di mana anda mahu memanggilnya, dan kaedah test1() dipanggil secara lalai semasa pemulaan, supaya data boleh diakses melalui objek kelas.

    balas
    0
  • 天蓬老师

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

    Anda boleh membenarkan test1 menggunakan return untuk mengembalikan nilai a dan b:

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

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:20:48

    Haha, mereka semua adalah bakat, penutupan, pengedap kelas, pulangan yang jelas, setiap perkara di atas adalah penyelesaian bebas.

    balas
    0
  • Batalbalas