Python----函數、類的定義、封裝及調用


'''
封裝:
    把亂七八糟的數據扔進列表里面,這是數據層面的封裝
    把常用的代碼段打包成一個函數,這是語句層面的封裝
    把數據和代碼打包成一個對象,這也是封裝

對象的特征稱為“屬性”,對象的行為稱為“方法”,即: 對象 = 屬性 + 方法
從代碼層面看,“屬性”就是變量,“方法”就是函數,將定義的這些稱為類(class)
對象叫做這個類的一個實例(instance),也叫實例對象(instance object)
'''

# 類名約定用大寫字母開頭,含 class 表明定義一個類
class Gm():
    str = "這是一個類屬性(類變量)"
    # 函數名用小寫字母開頭,含 def 表明定義一個函數
    def instancefunc(self):
        print("這是一個實例方法")
        print(self)

    @classmethod            # 該裝飾器用來標識為類方法,可以訪問類屬性
    def classfunc(cls):     # 第一個參數必須是類對象(cls.)
        print("這是一個類方法")
        print(cls)

    @staticmethod           # 該裝飾器用來標識為靜態方法,不可以訪問類屬性
    def staticfunc():       # 形參沒有 self 或 cls
        print("這是一個靜態方法")

# Gm1(繼承類)是子類,Gm(被繼承的類)是基類、父類或超類。
# 一個子類可以繼承分類的任何屬性和方法。
# 若子類中定義與父類同名的方法或屬性,則會自動覆蓋父類對應的方法或屬性
class Gm1(Gm):
    pass

# 調用
test = Gm()         # 初始化一個Gm的對象(創建一個Gm對象),即test是Gm的實例對象
print(test)
print("**************************************")
test.instancefunc()         # 對象調用實例方法
test.classfunc()            # 對象調用類方法
test.staticfunc()           # 對象調用靜態方法
print("**************************************")
print(test.str)
print("**************************************")
Gm.staticfunc()             # 類調用靜態方法
Gm.classfunc()              # 類調用類方法
Gm.instancefunc(test)       # 類調用實例方法,需要帶參數

 

 

實例方法:

 

class Gm():
    str = "這是一個類屬性(類變量)"

    def __init__(self, st):
        self.st = st

    def instancefunc(self):
        print("這是一個實例方法")
        print(Gm.str)
        print(self.st)
        print(self.str)
        print(self)

if __name__ == '__main__':
    test = Gm("abc")
    print(test)
    print(test.str)
    print(test.st)
    test.instancefunc()

 

 

  

 


免責聲明!

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



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