1. 程式人生 > >python類class中_init_函式以及引數self的簡單解釋

python類class中_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)