class AA():
def __init__(self):
self.test()
def test(self):
'''xxxxxxxxxxx
'''
return "This is a test"
a=AA()
只有a.test()后才有返回值,但是我初始化后test里有运算,请问初始化后为什么没有返回值的?该怎么写才在初始化后就能得到返回值,而不是再调用它的方法。
前面两位的方法其实和先初始化AA,在调用AA的test()效果是一样的,在初始化AA()的时候,调用的那次test()的返回值已经丢了,比如这样定义:
class AA():然后测试,会发现,str(AA())和funcAA()的返回值都是2
要得到在初始化过程中的返回值,可以用变量把结果保存起来,比如:
class BB():然后b=BB()后,b.result的返回值是1.
至于多个返回的问题,还好python是弱类型的,可以这样:
class CC():结果如下:
AA()返回的是AA构造出来的实例。你不定义类,直接定义test函数就可以直接返回了。或者你可以:
class AA():这样你直接funcAA()就可以了。
如果多个返回值怎么返回,多个返回值还不能一起返回,当我返回A就返回A,想返回B就返回B.貌似不能用俩个 __str__
追答你的问题难倒我了。真不知道怎么用这种方式实现。可能需要换一个方式吧。
通常的用法是这样
a=AA()
a.get_a()
a.get_b()