溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python面向對象的類和對象怎么使用

發(fā)布時間:2021-12-13 17:08:12 來源:億速云 閱讀:156 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹“Python面向對象的類和對象怎么使用”,在日常操作中,相信很多人在Python面向對象的類和對象怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python面向對象的類和對象怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    定義類

    • 所有類名首字母要求大寫,多個單詞時遵循駝峰命名法

    • 所有未定義父類的類都繼承object

    格式:class 類名[(父類)]:

    #兩種方式意思相同
    class Person:
        pass 
    class Person(object):
        pass

    定義類和屬性

    name、age、subject就是類屬性

    class Student:
        #類屬性
        name = ''
        age = 0
        subject = []

    類中方法

    對象方法(普通方法)
    格式:
    def 方法名(self[,parm1,parm2...]):
        pass

    self就是對象本身

    class Student:
        # 類屬性
        name = 'student'
        age = 0
        subject = []
       # 普通方法
        def study(self):
            print(self.name, '正在學習...') 
    xiaoming = Student()
    xiaoming.name = 'xiaoming'
    xiaoming.study()

    ------------
    輸出:
    xiaoming 正在學習...

    class Student:
        # 類屬性
        name = 'student'
        age = 0
        subject = []
       # 普通方法
        def study(self, name):
            print(name, '正在學習...') 
    s1 = Student()
    s1.study('xiaohong')

    ----------------
    輸出:
    xiaohong 正在學習...

    類方法
    格式:
    @classmethod
    def 方法名(cls):
        pass
    • 類方法使用@classmethod裝飾器

    • 對象方法傳入的是self,類方法傳入的是cls

    • 類方法可以直接用類調(diào)用,或者可以用類的實例(對象)調(diào)用

    class Dog:
        dog_type = '阿拉斯加'
       def __init__(self, nickname):
            self.name = nickname
       def dog_run(self):
            print('{}在公園里跑.看起來是一只{}.'.format(self.name, self.dog_type))
       @classmethod
        def dog_sit(cls):
            print(cls.dog_type, '很乖,坐下了') 
    dog1 = Dog('肉丸')
    dog1.dog_type = '小泰迪'
    dog1.dog_run()
    Dog.dog_sit()

    --------------
    輸出:
    肉丸在公園里跑.看起來是一只小泰迪.
    阿拉斯加 很乖,坐下了

    靜態(tài)方法
    • 靜態(tài)方法使用裝飾器@staticmethod

    • 靜態(tài)方法沒有參數(shù)

    • 當方法跟類屬性和對象屬性都沒有關系的時候,使用靜態(tài)方法

    • 支持對象和類名直接調(diào)用

    class Dog:
        def __init__(self, nickname):
            self.name = nickname
       @staticmethod
        def dog_sit():
            print('很乖,坐下了') 
    dog1 = Dog('肉丸')
    dog1.dog_sit()
    Dog.dog_sit() 
    ---------------------

    輸出:
    很乖,坐下了
    很乖,坐下了

    魔術方法
    格式:
    def __方法名__(self):
        pass

    __init__() 構造函數(shù)

    • 如果沒有__init__。直接利用類向內(nèi)存申請一個和類一樣的空間,給到對象。

    • 如果有__init__。利用類向內(nèi)存申請一個和類一樣空間,內(nèi)存空間(self)傳遞給__iniy__,執(zhí)行__init__的函數(shù)。最后將內(nèi)存空間給到對象。

    對象

    創(chuàng)建對象

    格式:對象名 = 類名()

    class Student:
        #類屬性
        name = ''
        age = 0
        subject = [] 
    xiaoming = Student()

    對象屬性

    • 當創(chuàng)建了對象時,對象會繼承類的屬性。獲取屬性的時候,也是從類中獲取屬性。

    • 當對默認的類屬性賦值后(對象名.屬性 = xxxx),屬性才會變成對象屬性。

    class Student:
        # 類屬性
        name = 'student'
        age = 0
        subject = [] 
    xiaoming = Student()
    print('類屬性:', xiaoming.name)  # 此時是從類中獲取的類屬性
    xiaoming.name = 'xiaoming'  # 因為賦值了,此時變成了對象屬性
    print('對象屬性:', xiaoming.name) 
    -------------

    輸出:
    類屬性: student
    對象屬性: xiaoming

    到此,關于“Python面向對象的類和對象怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

    AI