亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如果子類的__slots__直接在父類基礎上增加score屬性,輸出也正確,有無區別?


class Person(object):

??? __slots__ = ('name', 'gender')

??? def __init__(self, name, gender):
??????? self.name = name
??????? self.gender = gender

class Student(Person):

??? __slots__ = ('name', 'gender', 'score')

??? def __init__(self, name, gender, score):
??????
??????? self.score = score
???????
s = Student('Bob', 'male', 59)
s.name = 'Tim'
s.score = 99
print(s, s.score, s.name)

?

正在回答

5 回答

0 回復 有任何疑惑可以回復我~

我覺得子類的__slot__和父類的__slot__是兩個不同的屬性。分別存放單獨的元組。 在系統搜索的時候先在自身的__slot__里面的元組進行搜索,找不到的再到父類里面搜索,所以子類里面放不放父類的屬性沒有多大關系,損失點性能而已,忽略不計。

0 回復 有任何疑惑可以回復我~

居然這樣也可以運行,照理來說 你要繼承也要super(Student,self).__init__(name,gender) 應該也要繼承父類先初始化吧。。。

0 回復 有任何疑惑可以回復我~

沒有初始化,那么子類的屬性就會被父類原有屬性覆蓋。

0 回復 有任何疑惑可以回復我~

我想這大概是一種覆蓋


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

如果子類的__slots__直接在父類基礎上增加score屬性,輸出也正確,有無區別?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號