[問題] 關於override的繼承問題
我看書看到一個類似如下的程式碼
class A():
def __next__(self):
return 3
def __iter__(self):
return self
class B():
pass
a = A()
b = B()
next(a)
next(b) #error
-------------------------------------------
在我的理解裡,如果class A繼承自collections.abc.Iterable及Iterator則可以
override底下的方法__iter__及__next__,但我的A並無註明有繼承他們,為何我
還可以override呢?
我的class B是拿來試驗如果沒有寫__next__及__iter__則使用iter及next時會告
訴我並非Iterable而出錯
我以為如果宣告class時後面括號沒寫父類別就只會繼承object,但object裡也沒
有attribute __next__ 及__iter__呀?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.11.209
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1454939251.A.E8C.html
→
02/08 23:13, , 1F
02/08 23:13, 1F
→
02/08 23:59, , 2F
02/08 23:59, 2F
→
02/09 00:00, , 3F
02/09 00:00, 3F
→
02/09 00:01, , 4F
02/09 00:01, 4F
→
02/09 00:02, , 5F
02/09 00:02, 5F
→
02/09 02:12, , 6F
02/09 02:12, 6F
→
02/09 02:24, , 7F
02/09 02:24, 7F
推
02/14 11:19, , 8F
02/14 11:19, 8F
→
02/14 18:22, , 9F
02/14 18:22, 9F
→
02/14 18:23, , 10F
02/14 18:23, 10F
Python 近期熱門文章
PTT數位生活區 即時熱門文章