Day13.今日總結(jié)

1.什么是類、什么是對象

"""

  1. 官方定義
    類就是擁有相同功能和擁有相同屬性的對象的集合 - 抽象
    對象就是類的實例 - 具體
  2. 生活角度看類和對象
    """

2.類的聲明

"""
1)語法
class 類名:
類的內(nèi)容(屬性和功能)

2)說明
class - 聲明類的關(guān)鍵字
類名 - 要求為標(biāo)識符
見名知義,首字母大寫,駝峰式命名
類的內(nèi)容 - 主要包含說明文檔,屬性(普通的變量),功能(函數(shù)/方法)

"""

3.對象怎么聲明

"""
對象 = 類() - 創(chuàng)建指定的類對應(yīng)的對象
"""

4.類中的方法

"""

  1. 什么是方法:聲明在類中的函數(shù)叫方法
  2. 類中的方法有三種:對象方法,類方法,靜態(tài)方法
    a.對象方法:直接聲明在類中的函數(shù)
    有默認(rèn)參數(shù)self,通過對象調(diào)用的時候這個參數(shù)不用傳參,因為系統(tǒng)會
    (self,當(dāng)前對象 -- 誰調(diào)用self就指向誰,當(dāng)前對象能做的
    通過類的對象來調(diào)用 對象.對象方法()
    b.類方法:在聲明函數(shù)前加上@classmethod
    有默認(rèn)參數(shù)cls,通過類調(diào)用的時候這個參數(shù)不用傳參,因為系統(tǒng)會自動將當(dāng)
    (self,當(dāng)前類 -- 誰調(diào)用cls就指向誰,當(dāng)前類能做的事情cls
    通過類來調(diào)用:類.類方法()
    c.靜態(tài)方法:在聲明函數(shù)前@staticmethod
    沒有默認(rèn)參數(shù)
    通過類來調(diào)用:類.靜態(tài)方法()
    """
class Person:
    """人類"""
    @staticmethod
    def eat(food):
        print("人吃%s" % food)

常識:

1.什么是init方法

init是類默認(rèn)繼承的一個魔法方法,用來初始化類:本質(zhì)是對象方法,但是不需要程序員自己調(diào)用,會被自動調(diào)用
通過類創(chuàng)建對象的時候(通過構(gòu)造方法創(chuàng)建對象),系統(tǒng)會自動調(diào)用類中的init方法,并且構(gòu)造方法中的實參全部傳給init方法
創(chuàng)建對象的時候需不需要參數(shù),需要幾個參數(shù),看這個類的init方法

聲明累的時候,系統(tǒng)會自動給我們創(chuàng)建一個函數(shù),這個函數(shù)名和聲明的類的類名意義
函數(shù)會先在內(nèi)存中開辟空間創(chuàng)建對象,然后用創(chuàng)建的對象去調(diào)用類的init方法,最后才將對象返回

class Person:
    def __init__(self):
        pass

1.屬性

類中的屬性分為:對象屬性和字段
"""

  1. 字段 - 聲明在類中的字段
    通過 類.字段 的方式來使用
    不會因為對象的不同而不一樣的屬性,這種屬性可以聲明稱類的字段最近更新
  2. 對象屬性: 聲明在init方法中,以self.屬性 = 值 的形式聲明
    對象屬性通過'對象.屬性'的方式來使用
    """
    聲明類的時候方法的選擇
    """
    1.對象方法:當(dāng)實現(xiàn)函數(shù)的功能需要用到對象屬性時,使用對象方法
    2.類方法:實現(xiàn)函數(shù)的功能不需要對象屬性,并且需要類相關(guān)操作就使用類方法
    3.靜態(tài)方法:實現(xiàn)函數(shù)的功能不需要對象屬性也不需要類相關(guān)操作,就使用靜態(tài)方法

"""

class Dog:
    """ 狗 """
    # ===========字段=============
    numbers = 10

    @staticmethod
    def im():
        print('222')

    # ===========對象屬性===========
    def __init__(self):
        self.color = '白色'
        self.gender = '公狗'
        self.age = 4

練習(xí):聲明一個學(xué)生類,擁有屬性:名字\電話\年齡\學(xué)號 擁有功能:學(xué)習(xí)(打印XX在學(xué)XXX)\

class Students:
    def __init__(self, name, telephone='', age=0):
        self.name = name
        self.telephone = telephone
        self.age = age
        self.student_number = '0000'

    def learn(self, subject):
        print('%s在學(xué)%s' % (self, subject))


# 寫一個矩形類,有屬性: 長和寬 方法:求面積,求周長
class Rectangle:
    def __init__(self, length=0, width=0):
        self.length = length
        self.width = width

    def area(self):
        return self.length * self.width

    def perimeter(self):
        return 2 * (self.width + self.length)

python中的對象屬性支持增,刪,改,查

1.查

"""
a.對象.屬性 - 獲取指定屬性對應(yīng)的值,如果屬性不存在會報錯
b.getattr(對象,屬性名,默認(rèn)值) - 獲取指定屬性對應(yīng)的值,
屬性不存在返回默認(rèn)值,無默認(rèn)值時報錯
"""

2.增\改

"""
a.對象.屬性 = 值 - 當(dāng)屬性不存在就添加屬性,當(dāng)屬性存在修改屬性的值
b.setattr(對象,屬性名,值) - 當(dāng)屬性不存在就添加屬性,當(dāng)屬性存在修改屬性的值
"""

3.刪

"""
del 對象.屬性
delattr(對象,屬性名) - 刪除指定對象對應(yīng)的屬性
"""

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容