[問題] class.__new__ 使用疑問
今天在網路上查到
想要讓class物件直接回傳東西,可以用__new__的方法來達成
不過使用了之後發現,在該class下面寫的函數都會失效
以下是範例程式(使用Python2):
class MyList(object):
def __new__(cls,input_list):
return input_list
def __init__(self,input_list):
self.input_list=input_list
def Sum(self):
return sum(self.input_list)
li=MyList([1,2,3])
print li # [1, 2, 3]
print li.Sum # AttributeError
請問該如何改寫才正確呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.14.177.165
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1544370755.A.BA4.html
推
12/10 00:07,
6年前
, 1F
12/10 00:07, 1F
→
12/10 00:07,
6年前
, 2F
12/10 00:07, 2F
→
12/10 00:07,
6年前
, 3F
12/10 00:07, 3F
→
12/10 00:10,
6年前
, 4F
12/10 00:10, 4F
感謝回覆
我對專業術語還比較陌生,可能用詞上會有錯誤
以上面的範例來說,我希望可以重新定義一個類別
這個類別可以直接返回一個list
而印出他的 list.Sum 時,可以有返回sum(list)的效果,也就是加總裡面所有的數字
※ 編輯: papple23g (101.14.177.165), 12/10/2018 00:21:45
推
12/10 00:26,
6年前
, 5F
12/10 00:26, 5F
→
12/10 00:26,
6年前
, 6F
12/10 00:26, 6F
→
12/10 00:33,
6年前
, 7F
12/10 00:33, 7F
→
12/10 00:33,
6年前
, 8F
12/10 00:33, 8F
原來如此,非常感謝解答<(_ _)>
※ 編輯: papple23g (101.14.177.165), 12/10/2018 00:46:36
Python 近期熱門文章
PTT數位生活區 即時熱門文章