python 中_init_函數以及參數self


1)class類包含:

類的屬性:類中所涉及的變量 
類的方法:類中函數

2)_init_函數(方法)

1.首先說一下,帶有兩個下划線開頭的函數是聲明該屬性為私有,不能在類地外部被使用或直接訪問。 
2.init函數(方法)支持帶參數的類的初始化 ,也可為聲明該類的屬性 
3.init函數(方法)的第一個參數必須是 self(self為習慣用法,也可以用別的名字),后續參數則可 以自由指定,和定義函數沒有任何區別。

3)函數定義 
Python編程中對於某些需要重復調用的程序,可以使用函數進行定義,基本形式為: 
def 函數名(參數1, 參數2, ……, 參數N): 其代碼形式如下面所示:

def function_name (parameters):

  block

  return value

 

注意在類的內部,使用def關鍵字可以為類定義一個函數(方法),與一般函數定義不同,類方法必須包含參數self,且為第一個參數! 
此外,可使用 **kw定義關鍵參數,代表任意參數,python函數可變參數及關鍵字參數定義參考見下文。 
python函數只能先定義再調用!

 

4)self參數含義 
在類的代碼(函數)中,需要訪問當前的實例中的變量和函數的,即,訪問Instance中的: 
對應的變量(property):Instance.ProperyNam,去讀取之前的值和寫入新的值 
調用對應函數(function):Instance.function(),即執行對應的動作 
此處的Instance本身就是self。 
Python中的self等價於C++中的self指針和Java、C#中的this參數。

5)一個簡單實例

5.1代碼如下

 

class person():
    def __init__(self,name,gender,birth,**kw):
        self.name=name
        self.gender=gender
        self.birth=birth
        for k,w in kw.iteritems():
            setattr(self,k,w)
    def sayhi(self):
        print 'my name is',self.name
xiaoming = person('Xiao Ming', 'Male', '1991-1-1',job='student',tel='18089355',stdid='15010')
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()

 

5.2 運行結果

 

Xiao Ming
1992-2-2
student
18089355
15010
my name is Xiao Ming
None

 

5.3實例解釋 
在本例中建立一個person的類,並賦值了兩個實例:xiaoming和xiaohong , self指的是傳入的實例(不同實例類的屬性值不同以及方法執行結果不同)即xiaoming和xiaohong,類的屬性即為name,gender,birth及其他kw,類的方法即為sayhi。有關關鍵字參數請參考python的可變參數和關鍵字參數(*args **kw)

6)參考資源
python類的初始化屬性


免責聲明!

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



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