Heim > Fragen und Antworten > Hauptteil
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
首先,你这种需求是不可能且不合理的,两个分立的函数不可能相互访问里面的变量的
如果用闭包倒是可以做到,不过不知道是不是你想要的:
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
可以将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()方法,这样就可以通过类的对象访问数据了。
天蓬老师2017-04-18 10:20:48
可以让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()