Python易錯點4
阿新 • • 發佈:2020-12-17
45.不可變物件與可變物件
可變物件與不可變物件的區別在於物件本身是否可變。
python內建的一些型別中
可變物件:list dict set
不可變物件:tuple string int float bool
46.PEP8規範識別
序列為空if seq/ if not seq
,不用if seq != []
變數名不能重名items = []; items=[item for item in items]
47.__dict__與dir()區別
答案:A
python一切皆物件,並不是所有物件都擁有__dict__屬性。許多內建型別就沒有__dict__屬性,如list,此時就需要用dir()來列出物件的所有屬性
__dict__屬性:
例項的__dict__僅儲存與該例項相關的例項屬性,
正是因為例項的__dict__屬性,每個例項的例項屬性才會互不影響。
類的__dict__儲存所有例項共享的變數和函式(類屬性,方法等),類的__dict__並不包含其父類的屬性。
dir()函式:
dir()是Python提供的一個API函式,dir()函式會自動尋找一個物件的所有屬性(包括從父類中繼承的屬性)。
一個例項的__dict__
屬性僅僅是那個例項的例項屬性的集合,並不包含該例項的所有有效屬性。所以如果想獲取一個物件所有有效屬性,應使用dir()。