Python相關語法2

不拿offer不改名發表於2020-09-23

1.__int__和__new__方法的區別。

  • __init__ 方法為初始化方法, __new__方法才是真正的建構函式。
  • __new__方法預設返回例項物件供__init__方法、例項方法使用。
  • __init__ 方法為初始化方法,為類的例項提供一些屬性或完成一些動作。
  • __new__ 方法建立例項物件供__init__ 方法使用,__init__方法定製例項物件。
  • __new__是一個靜態方法,而__init__是一個例項方法。

2.python中主要存在四種命名方式。

  • object #公用方法

  • _object #半保護

                 #被看作是“protect”,意思是隻有類物件和子類物件自己能訪問到這些變數,

                  在模組或類外不可以使用,不能用’from module import *’匯入。

                #__object 是為了避免與子類的方法名稱衝突, 對於該識別符號描述的方法,父

                  類的方法不能輕易地被子類的方法覆蓋,他們的名字實際上是

                  _classname__methodname。

  • _ _ object  #全私有,全保護

                       #私有成員“private”,意思是隻有類物件自己能訪問,連子類物件也不能訪

                          問到這個資料,不能用’from module import *’匯入。

  • _ _ object_ _     #內建方法,使用者不要這樣定義

3.字典中的淺拷貝

copy() 方法的意義相同,均為返回一個淺複製的 dict 物件,而淺複製是指只拷貝父物件,不會拷貝物件的內部的子物件,即兩個 dict 父物件 kvps 與 theCopy 相互獨立,但對它們內部子物件的引用卻是共享的,所以 kvps['1'] 的改變不影響 theCopy['1'] 的值(因為改變的是父物件的值)。

kvps = { '1' : 1, '2' : 2 }
theCopy = kvps.copy()
kvps['1'] = 5
sum = kvps['1'] + theCopy['1']
print(sum)
# 輸出的值為6

4.函式物件

在 Python 中萬物皆為物件,函式也不例外,函式作為物件可以賦值給一個變數可以作為元素新增到集合物件中可作為引數值傳遞給其它函式還可以當做函式的返回值,這些特性就是第一類物件所特有的。

 

相關文章