Python面向對象基礎知識

面向對象是一種編程方式,此編程方式的實現是基於對類和對象的使用編程

類是一個模板,模板中包裝了多個「函數」供使用(能夠講多函數中公用的變量封裝到對象中)函數

對象,根據模板建立的實例(即:對象),實例用於調用被包裝在類中的函數spa

面向對象的三大特性:封裝、繼承、多態code

類的成員:字段、方法和屬性對象

 

其中字段: 普通字段、靜態字段blog

方法:普通方法、類方法、靜態方法繼承

屬性:普通屬性內存

注: 全部成員中,只有普通字段的內容保存對象中,即:根據此類建立了多少個對象,在內存中就有多少個普通字段。而其餘的成員,則都保存在類中,即:不管對象的多少,在內存中只建立一份。get

1、字段it

 

class Student:
    #靜態字段
    name='lucy'
    def __init__(self,name):
        #普通字段
        self.name = name
#直接訪問普通字段
obj = Student('lily')
print obj.name


#直接訪問靜態字段
print Student.name

 

普通字段經過對象來訪問,靜態字段經過類訪問

靜態字段在內存中只保存一份

普通字段在每一個對象中都要保存一份

應用場景: 經過類建立對象時,若是每一個對象都具備相同的字段,那麼就使用靜態字段

 

二:方法

普通方法:由對象調用;至少一個self參數;執行普通方法時,自動將調用該方法的對象賦值給self;

類方法:由類調用;至少一個cls參數;執行類方法時,自動將調用該方法的類複製給cls;

靜態方法:由類調用;無默認參數;

class Student:
    def __init__(self,name):
        self.name = name
    def getName(self):
        print  self.name
        print '普通方法'
    @classmethod
    def class_func(cls):
        '''定義類方法,至少有一個cls參數'''
        print '類方法'
    @staticmethod
    def static_func():
        '''定義靜態方法,無默認參數 '''
        print '靜態方法'
#調用普通方法
stu = Student('lily')
stu.getName()
#調用類方法
Student.class_func()
#調用靜態方法
Student.static_func()

對於全部的方法,均屬於類,因此,在內存中也只保存一份。

方法調用者不一樣、調用方法時自動傳入的參數不一樣。

相關文章
相關標籤/搜索