前面兩位的方法其實(shí)和先初始化AA,在調(diào)用AA的test()效果是一樣的,在初始化AA()的時候,調(diào)用的那次test()的返回值已經(jīng)丟了,比如這樣定義:
成都創(chuàng)新互聯(lián),專注為中小企業(yè)提供官網(wǎng)建設(shè)、營銷型網(wǎng)站制作、自適應(yīng)網(wǎng)站建設(shè)、展示型網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營銷推廣問題。
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()
然后測試,會發(fā)現(xiàn),str(AA())和funcAA()的返回值都是2
要得到在初始化過程中的返回值,可以用變量把結(jié)果保存起來,比如:
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"
結(jié)果如下:
題主你好,
關(guān)鍵點(diǎn)在于函數(shù)如果沒有明確使用return關(guān)鍵字指定函數(shù)的返回值,則默認(rèn)返回值是none.
-----
所以temp = hello()這句的理解就是: 執(zhí)行hello()這個函數(shù), 并且把函數(shù)的返回值賦給變量temp, 但hello()函數(shù)中沒有return語句, 所以hello()函數(shù)的返回值為默認(rèn)的none.
-----
題主還可以在hello()函數(shù)最后加一個: return 123
然后再行一下看看,就明白了.
=====
希望可以幫到題主, 歡迎追問.
在Python中,一個函數(shù)的返回值可以直接輸出,示例代碼如下:
# 定義一個函數(shù)
def add(a, b):
return a + b
# 調(diào)用函數(shù)并輸出返回值
print(add(1, 2))
在這段代碼中,我們首先定義了一個名為add的函數(shù),該函數(shù)接收兩個參數(shù)a和b,并通過return語句返回它們的和。接著,我們調(diào)用該函數(shù)并傳入?yún)?shù)1和2,并使用print函數(shù)輸出函數(shù)的返回值,即3。
請注意,上面的代碼只是一個示例,實(shí)際應(yīng)用中可能需要根據(jù)實(shí)際情況進(jìn)行更多的處理,比如考慮函數(shù)沒有返回值等情況。