python中的_init_的含義


 

上面的例子中,Person是一個類,_init_是一個特殊的方法(init是單詞初始化initialization的省略形式),在使用類創建對象之后被執行,用於給新創建的對象初始化屬性用。

self.name = name    就是初始化屬性的語句

_init_是一個方法,這個方法里面有三個形參self、name、age。self表示對象本身,誰調用就表示誰

這里self.name = name 和 self.age = age表示將外部傳來的name 和 age,賦值給了self 對象的name和age屬性。

下面是創建對象:P = Person('小明',20) ---------這句話就創建出來了一個具體的人,並且給這個人起了個名字叫小明,指定了小明的年齡為20,並且將小明這個對象賦值給了變量p,此時p就表示小明這個人(對象)。

這句話就代表,創造了一個人對象(小明),並調用了 init(self,name,age) 方法完成了該人的屬性的初始化,小明賦值給name,20賦值給age屬性。

而self是不需要傳參的,因為slef表示對象本身,誰調用就表示誰,此時的self就表示Person('小明',20),也就是P。

也就是,我們創造出了p,然后給p的屬性賦了值,此時p就表示擁有屬性值之后的那個人。

可以使用點.來調用對象的屬性,比如輸出p的名字和年齡,完整代碼為:

 

 

 

例子:

接下來我們再在Person類中定義一個方法,用於自我介紹:

def desc(self):
    print("我叫%s,今年%d歲" % (self.name, self.age))

在類的內部,訪問自己的屬性和方法,都需要通過self,self就是外部對象在類內部的表示,此時可以使用p調用該方法,完整代碼如下:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def desc(self):
        print("我叫%s,今年%d歲" % (self.name, self.age))
p = Person('傑拉考', 200)
# 調用自我介紹方法 desc方法中的self就是外部的這個p
p.desc()

輸出為:

我叫傑拉考,今年200歲

當前desc方法中的self,就是外部的那個對象p,如果我再定義了一個對象p2,那么p2調用desc時,desc中的self就表示p2這個對象。正所謂:誰調用,就表示誰



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM