產生的物件的方式 new

2022-09-22 19:12:20 字數 1100 閱讀 7390

1.產生物件的原理      __new__ 方法

class

testclass:

#類內部在new一個物件之前預設生成一個空的物件(記憶體空間),然後再呼叫__init__

def__new__(cls, *args, **kwargs): #

宣告:python __new__ 為類中的靜態方法

return object.__new__(cls) #

通過object的new方法把本類作為引數去建立一個空物件

def__init__

(self,name):

self.name =name

obj = testclass('

egon')

print(obj.name) #

egon

2. 基於__new__的單例模式

#

基於__new__的單例模式

class

sington:

_instance =none

def__new__(cls, *args, **kwargs): #

python的實現機制 __new__ 為類中的靜態方法

ifnot cls._instance: #

靜態方方法

cls._instance = object.__new__

(cls)

return

cls._instance

obj1 =sington()

obj2 =sington()

#print(sington) #

#print(sington.__class__) #

#print(sington) #

print(sington.__dict__) #

列印類的名稱空間

print(obj1.__dict__) #

列印物件的名稱空間

print(obj1.__class__) #

列印物件的類

print(obj1.__class__.__name__) #

列印物件的類名

JS中new的執行方式

在js中,有兩個基礎原型,分別是function prototype和object prototype。這兩個原型組成了js中的所有例項他們的關係是 function prototype object prototype null。 常用的建立類的有兩種方法,我們從這兩種方法講兩種prototype...

Python中的 new

new 方法用於建立例項物件, new 方法在建立類例項物件時由python直譯器自動呼叫首先呼叫person的 new 方法,該方法通過o...

Python3的 new

這個方法是用來生成類的例項 class singleton object def new cls args kwargs if not ha...