2017-06-15 87 views
0
class Myclass(list): 

    def remove_max(self): 
     self.remove(max(self)) 

l = [1,2,3] 

object = Myclass(l) 

object.remove_max() 

print(object) 

在繼承自類列表的Myclass中爲什麼Myclass(l)爲該對象賦值[1,2,3]? 即使我們給它一個字符串說'abc'而不是列表l作爲輸入爲什麼是列表['a'設置的對象的值。 'B']?python3中的類和繼承

+0

請您澄清一下代碼和問題嗎?我猜想最後四行不應該有縮進? 你是什麼意思與「轉讓」? 'object = Myclass(l)'將[list]構造函數指定爲[1,2,3]'(https://docs.python.org/3.5/library/stdtypes.html#list)。下一行刪除元素'3'。 – jstriebel

+0

是的,我很抱歉不正確的縮進。我現在編輯了代碼 – kmkhan

回答

0

由於您沒有定義__init__方法,因此在施工時給出的參數將被提供給直接父級,此處爲list。當你從一個迭代中建立一個列表時,你會得到由不同項目組成的列表。所以:

  • 如果l是一個列表list(l)被初始列表
  • 如果s的副本的字符串(它是字符的一個可迭代),list(s)s
  • 以字符組成的列表