前面两位的方法其实和先初始化AA,在调用AA的test()效果是一样的,在初始化AA()的时候,调用的那次test()的返回值已经丢了,比如这样定义:
成都创新互联,专注为中小企业提供官网建设、营销型网站制作、自适应网站建设、展示型网站设计制作、成都做网站等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。
class AA():
def __init__(self):
self.count=0
self.test()
def test(self):
""" test function"""
self.count +=1
return str(self.count)
def __str__(self):
return self.test()
def funcAA():
return AA().test()
然后测试,会发现,str(AA())和funcAA()的返回值都是2
要得到在初始化过程中的返回值,可以用变量把结果保存起来,比如:
class BB():
def __init__(self):
self.count=0
self.result=self.test()
def test(self):
self.count += 1
return str(self.count)
然后b=BB()后,b.result的返回值是1.
至于多个返回的问题,还好python是弱类型的,可以这样:
class CC():
def __init__(self, count):
self.count=count
self.result=self.test()
def test(self):
self.count += 1
if self.count % 2 == 0:
return self.count
else:
return "hello world"
结果如下:
题主你好,
关键点在于函数如果没有明确使用return关键字指定函数的返回值,则默认返回值是none.
-----
所以temp = hello()这句的理解就是: 执行hello()这个函数, 并且把函数的返回值赋给变量temp, 但hello()函数中没有return语句, 所以hello()函数的返回值为默认的none.
-----
题主还可以在hello()函数最后加一个: return 123
然后再行一下看看,就明白了.
=====
希望可以帮到题主, 欢迎追问.
在Python中,一个函数的返回值可以直接输出,示例代码如下:
# 定义一个函数
def add(a, b):
return a + b
# 调用函数并输出返回值
print(add(1, 2))
在这段代码中,我们首先定义了一个名为add的函数,该函数接收两个参数a和b,并通过return语句返回它们的和。接着,我们调用该函数并传入参数1和2,并使用print函数输出函数的返回值,即3。
请注意,上面的代码只是一个示例,实际应用中可能需要根据实际情况进行更多的处理,比如考虑函数没有返回值等情况。