__new__() 在__init__()之前使用,__new__()決定__init__()如何去進行類屬性的定義以及對於類屬性的一些變動!
舉個很簡單的例子,就比如你能自定義自己生的孩子的屬性!你自己能自定義的這個操作就是__new__()
定義出來的孩子的樣子屬性就是__init__()
(ps:我理解了好久呢,終於在今天理解成功了,知道了什麼意思)
class Test(object): def __new__(cls,name): if isinstance(name,str): return object.__new__(cls) else: print( "類型錯誤!") def __init__(self,name): self.name = name
if __name__ == '__main__': c = Test("str")
講解:
__new__ ()之前是對name進行了數據的檢查,檢查name是否是str類型,如果是,則將name進行賦值給類屬性.如果不是則進行了輸出!
同理,也可以對其它的進行這樣子設置。
(ps:我又水了一期。。。)