1. 程式人生 > 實用技巧 >Python易錯點4

Python易錯點4

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()。