題主你好,
在孝昌等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站制作,孝昌網(wǎng)站建設(shè)費(fèi)用合理。
python中創(chuàng)建新實(shí)例的時(shí)候, 如果相應(yīng)的類中定義了__init__()方法的話, 會(huì)自動(dòng)調(diào)用這個(gè)方法. 你可能認(rèn)為名稱"init"和"__init__"差不多, 但計(jì)算機(jī)其實(shí)是個(gè)很笨的東西, 它會(huì)完全按照設(shè)計(jì)去執(zhí)行. 也就是說(shuō),在設(shè)計(jì)的時(shí)候就已經(jīng)定死了, 默認(rèn)情況下, 創(chuàng)建新實(shí)例的時(shí)候, 會(huì)自動(dòng)調(diào)用類中定義的__init__()方法, 只要你的方法名和__init__有一點(diǎn)不一樣也不行.
下圖是我在官網(wǎng)上找的關(guān)于__init__()調(diào)用的簡(jiǎn)單說(shuō)明:
高亮部分說(shuō)的大概意思就是上面講的,如果相應(yīng)類中定義了__init__()方法,則在創(chuàng)建該類實(shí)例的時(shí)候會(huì)自動(dòng)調(diào)用里面定義的__init__()方法.
-----
希望可以幫到題主, 歡迎追問(wèn).
例子:
#!/usr/bin/python
# Filename: class_init.py
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print Hello, my name is, self.name
p = Person(Swaroop)
p.sayHi()
這個(gè)例子中就是在init方法中定義了參數(shù)name,然后調(diào)用的時(shí)候直接用類名person帶上傳參swaroop就行了,swaroop參數(shù)就會(huì)傳遞給sayhi(),整個(gè)流程就對(duì)應(yīng)c中的構(gòu)造函數(shù)。
然后說(shuō)鉤子,其實(shí)就是實(shí)現(xiàn)一種內(nèi)操作,有子進(jìn)程的意思但又不是,至于裝飾函數(shù)是不是鉤子好像沒(méi)官方說(shuō)法,我認(rèn)為可以算是。裝飾器就是把一個(gè)函數(shù)對(duì)象返回給另一個(gè)函數(shù)來(lái)實(shí)現(xiàn)既定的功能,其實(shí)就是一種內(nèi)操作。
PS:很多東西都是相關(guān)的,比如方法和它的具體實(shí)現(xiàn)功能,等你用到它的功能以后就很好理解了,單純的研究理論也沒(méi)什么意思。尤其是這種比較抽象的概念。
Python中有兩個(gè)特殊的方法, 一個(gè)是構(gòu)造函數(shù) init , 另一個(gè)是析構(gòu)函數(shù) del ,統(tǒng)稱為魔術(shù)方法。
構(gòu)造函數(shù) init ,創(chuàng)建實(shí)例對(duì)象之后Python會(huì)自動(dòng)執(zhí)行此方法,把初始化的屬性特點(diǎn)放到實(shí)例對(duì)象里。
構(gòu)造函數(shù)是創(chuàng)建并初始對(duì)象屬性,那么對(duì)象使用完成后,系統(tǒng)是怎么處理這些呢?
這個(gè)時(shí)候,Python引入了銷毀對(duì)象功能的析構(gòu)函數(shù) del ()
析構(gòu)函數(shù) del 是對(duì)象沒(méi)有被引用時(shí)會(huì)觸發(fā)垃圾回收機(jī)制,進(jìn)行內(nèi)存釋放.
python 內(nèi)置的 del 方法稱為析構(gòu)方法。用于實(shí)現(xiàn)對(duì)象被銷毀時(shí)所需的操作。
常見(jiàn)的應(yīng)用常見(jiàn)如:
析構(gòu)方法 del ()是可選的,如果不提供,則Python 會(huì)在后臺(tái)提供默認(rèn)析構(gòu)函數(shù)
如果要顯式的調(diào)用析構(gòu)函數(shù),可以使用del關(guān)鍵字: del obj
析構(gòu)方法的作用是銷毀對(duì)象的,在python中采用垃圾回收機(jī)制。
Python垃圾回收機(jī)制核心思想是:
詳細(xì)說(shuō)明:
我們主動(dòng)刪除對(duì)象調(diào)用del 對(duì)象;程序運(yùn)行結(jié)束后,python也會(huì)自動(dòng)進(jìn)行刪除其他的對(duì)象。
注意:
如果我們重寫子類的 del () 方法(父類為非 object 的類),則必須顯式調(diào)用父類的 del () 方法,這樣才能保證在回收子類對(duì)象時(shí),其占用的資源(可能包含繼承自父類的部分資源)能被徹底釋放
我們本期學(xué)習(xí)了Python內(nèi)置函數(shù)析構(gòu)函數(shù),用于沒(méi)有被引用的對(duì)象進(jìn)行回收處理,一般情況下,我們不用刻意去調(diào)用,python內(nèi)部會(huì)對(duì)進(jìn)行觸發(fā)。
以上是本期內(nèi)容,歡迎大佬們?cè)u(píng)論區(qū)指正,下期見(jiàn)~
now.Time()這句是干嘛?你的Time class有這個(gè)方法嗎
你把錯(cuò)誤貼出來(lái)吧
哈哈,Time()這個(gè)方法你也要一起打出來(lái)啊,不然去哪里調(diào)用啊
class?Person:
#?此處,兩個(gè)?下劃線?_?_
def?__init__(self,name,job):
self.name=name
self.job=job
bob=Person('Bob?Smith','dev')
print(bob.name,bob.job)