Rumah > Soal Jawab > teks badan
def test1():
a = 1
b = 2
def test2():
c = 3
d = c + a
print(d)
test2
这边想实现下面的test2调用上面test1里面的数据,要怎么实现,使用的是python3
高洛峰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()
巴扎黑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.
天蓬老师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()
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.