您好,登錄后才能下訂單哦!
這篇文章主要介紹“python中 __init__的意義及作用是什么”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“python中 __init__的意義及作用是什么”文章能幫助大家解決問題。
python 中 __init__ 與PHP中的構造函數相似__construct()
都具有初始化的作用。
1.python中的__init__是一個私有函數(方法),訪問私有函數中的變量在python中用self,在PHP中用$this
2.在python類的定義中,一個函數(php叫方法)的參數中必須帶有self參數,且self放在第一位
如下例子
class person(): def __init__(self,name,gender,birth,**kw)://可使用 **kw定義關鍵參數,代表任意參數 ,python中函數的代碼塊用:php用; self.name=name self.gender=gender self.birth=birth for k,w in kw.iteritems(): setattr(self,k,w) //python中是按照縮進來判斷代碼塊的從屬 def sayhi(self): print 'my name is',self.name xiaoming = person('Xiao Ming', 'Male', '1991-1-1',job='student',tel='18089355',stdid='15010') //php中實例類用new, xiaohong = person('Xiao Hong', 'Female', '1992-2-2') print xiaoming.name print xiaohong.birth print xiaoming.job print xiaoming.tel print xiaoming.stdid print xiaoming.sayhi()
運行結果如下
Xiao Ming
1992-2-2
student
18089355
15010
my name is Xiao Ming
最開始學習python,認為定義類時__init__方法的作用等同于C中的構造函數,但是使用之后發現也有區別。
# coding:utf-8 class a(): def __init__(self,name): self.name = name def get_name(self): return self.name b = a("wang") print(b.get_name()) Output: ----- wang -----
例如:
執行時的步驟可以理解為;
b = object.__new__(a) a.__init__(a,"wang")
即__init__的作用是初始化實例后的對象b
在子類不重寫__init__方法時,子類會默認調用父類中的__init__方法
子類也可以重寫__init__方法,來給子類定義專屬屬性
當然,上面寫的是比較官方的解釋
用簡單的話來講,可以理解為,類的屬性如果直接寫在類里面一般是要有值的。
例如:
class fun() a = 3
這樣的情況下,類中的屬性無法變成變量,當將類的屬性以self.a的方式定義到初始化方法中,那屬性也可以當成變量
例如:
class fun(): def __init__(self, a): self.a = a f = fun(3) print(f.a) Output: -- 3 --
關于“python中 __init__的意義及作用是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。