在這種情況下,我將如何獲取返回值。 (因爲我會功能)從類中獲取返回值
class A(object):
def __init__(self,a,b):
self.a = a
self.b = b
self.run()
def run(self):
return a + b
當我這樣做,我得到一個實例,我將如何得到一個返回值?
感謝 詹姆斯
在這種情況下,我將如何獲取返回值。 (因爲我會功能)從類中獲取返回值
class A(object):
def __init__(self,a,b):
self.a = a
self.b = b
self.run()
def run(self):
return a + b
當我這樣做,我得到一個實例,我將如何得到一個返回值?
感謝 詹姆斯
你試圖做一些事情,如:
class A(object):
def __init__(self,a,b):
self.a = a
self.b = b
def __call__(self):
return self.a + self.b
a = A(3, 4)
a() # returns 7
目前尚不清楚你想要什麼,爲什麼。 __init__
修改自我對象,但要求返回None
(即不返回)。其他任何情況都會導致TypeError
。
編輯:爲了避免創建一個實例,可以覆蓋__new__
:
class A(object):
def __new__(self,a,b):
return A.run(a, b);
@staticmethod
def run(a, b):
return a + b
你仍然還沒有完全解釋爲什麼你需要這個。
是的我正在嘗試做你的代碼正在做什麼,但我不想要一個實例。 – James 2010-07-08 01:01:12
如果你想要一個返回值而不是一個實例,你爲什麼要使用一個類而不是一個函數? – 2010-07-08 01:15:11
調用類型的主要目的是創建(和返回),該類型的實例 - 儘管你可能做手腳與__new__
解決的是,爲什麼,在身邊的一切事項的名稱,將你想要來編碼一種類型,它本質上不可能通過常規手段實例化?!看起來你有一些「聰明」的想法,但是,請記住,「聰明」是而不是在Python社區中是一種恭維...而是Python約爲簡單。只需使用一個函數(或任何其他可調用函數,例如帶有__call__
方法的類的實例,以獲得高級但仍十分合理的用例)!
沒有太花哨。我想要的只是一個類功能,就像功能一樣(可以用作功能),如果需要,可以調用或使用除主功能之外的一些方法。 – James 2010-07-08 19:52:50
@ user386:沒有一個實例,你所調用的「某些方法」只是帶有一些額外複雜功能的函數,但對於完全正常的,誠實的常規函數沒有任何真正的好處。只需使用功能,讓您的生活變得更簡單! – 2010-07-08 20:10:50
如果您提到您正在嘗試解決的潛在問題,您將得到更好的答案。換句話說,使用這個的代碼是什麼? – detly 2010-07-08 04:30:43