亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 2839 | 回復(fù): 2
打印 上一主題 下一主題

為什么super 不能正確處理動(dòng)態(tài)類 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-02-09 21:31 |只看該作者 |倒序?yàn)g覽
下面是代碼。哪里牛人解釋一下為什么這樣用, 會(huì)出錯(cuò): python 2.7.6

  1. class Foo(object):
  2.     def __init__(self):
  3.         print "foo"
  4.         pass
  5.     pass

  6. class Bar(Foo):
  7.     def __init__(self):
  8.         super(type(self), self).__init__() # 如果寫成super(Bar, self).__init__()就沒有問題
  9.         print 'bar'
  10.         pass
  11.     pass

  12. _Bar = type('_Bar', (Bar,), {})

  13. x = _Bar() #RuntimeError: maximum recursion depth exceeded while calling a Python object

  14.         
復(fù)制代碼
嚴(yán)重懷疑這是python的一個(gè)bug? 雖然這說起來有點(diǎn)危言聳聽.

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
2 [報(bào)告]
發(fā)表于 2015-02-11 10:20 |只看該作者
_Bar = type('_Bar', (Bar,), {}) 相當(dāng)于
  1. class _Bar(Bar):
  2.     pass
復(fù)制代碼
由于沒有定義__init__方法,默認(rèn)調(diào)用Bar.__init__(self)
此時(shí) type(self)為_Bar, super(type(self), self)的結(jié)果為Bar,
繼續(xù)調(diào)用Bar.__init__, type(self)還是_Bar, 導(dǎo)致死循環(huán)
_Bar.__init__ -> Bar.__init__ -> Bar.__init__ -> Bar.__init__ -> ....

論壇徽章:
4
雙子座
日期:2014-08-28 10:08:002015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:58:112015年亞洲杯之阿聯(lián)酋
日期:2015-03-13 03:25:15
3 [報(bào)告]
發(fā)表于 2015-02-11 10:51 |只看該作者
樓上正解。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP