PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] class.__new__ 使用疑問
作者:
papple23g
(逆道者)
2018-12-09 23:52:33
今天在網路上查到
想要讓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
請問該如何改寫才正確呢?
謝謝
作者:
ThxThx
(洗洗睡)
2018-12-10 00:07:00
把__new__和__init__想成是初始化物件的不同階段通常是因為繼承然後又想修改derived class的行為大部分的情況用到__new__是anti pattern至於改寫,你沒有說明你期待的功能是什麼?抱歉我前面說錯 修改回傳instance的行為 但通常跟繼承有關你想做的叫built-in types subclassing
https://stackoverflow.com/q/14484749
繼續閱讀
[問題] def 內呼叫其他py檔def
leoone
[問題] 不影響迴圈效率情況下倒數
XperiaZ6C
[問題] 新手問ptt政黑版爬蟲
askdrlin
[問題] print畫面資料 寫出一個檔
newdas
print的結果 如何寫出在一個檔案
newdas
[問題]Selenium沒辦法爬 MOMO購物網
a6409tw
[問題] 解方程式
kottey
[問題] 重複執行py檔並紀錄結果
newdas
Re: [心得] PTT Library
jay20210
[問題] 有關於滑鼠點擊座標並寫入檔案
a00011111143
Links
booklink
Contact Us: admin [ a t ] ucptt.com