學習python的朋友們都知道python有不少內置方法,正由於有這些內置方法才讓python學起來很容易,用起來很方便,小猿圈今天詳細描述一個方法__new__,這個方法功能很強大的,一塊兒來看一下吧。python
class Dog(object): def __new__(self): print("i am new .") def __init__(self): print("i am init .") def run(self): print("runing .") dog = Dog() dog.run() #打印i am new. #執行run()方法失敗 #錯誤緣由:沒有生成dog對象,因此調用方法失敗
class Dog(object): #new方法中的參數是類對象參數,而不是類實體對象參數 def __new__(cls): print("i am new .") #打印類對象的地址 print(id(cls)) #調用父類的方法,建立類實體對象 #new方法必須有返回值 return object.__new__(cls) def __init__(self): print("i am init .") def run(self): print("runing .") dog = Dog() dog.run() ''' python類實體對象建立過程 第一步:調用__new__建立對象 第二步:將new方法的返回值傳遞給init方法 第三步:返回類實體對象的引用 '''
你們看出來__new__方法的做用了,__new__方法就是建立對象實例的,爲__init__方法打下了基礎,建立出來對象才能初始化這個對象,因此這個方法仍是很重要的,學會的朋友必定要抓緊時間練習一下,下面小編會講__init__方法,感興趣的朋友能夠提早去小猿圈預習一下,好了,好好加油學習哦!學習