面向Python,面向對象(基礎3)

1. 面向對象

1.1 面向對象概念

面向對象是一種編程思想,看以當作是對現實世界中的事物進行抽象的方式。應用到代碼編程設計中,是一種創建現實世界事物模型的方式。python

1.2 面向對象和麪向過程區別

面向過程關注的是完成工做的步驟,面向對象關注的是誰能完成工做,一個關注過程,一個關注完成對應任務的個體。編程

2. 類

2.1 類的概念

類是一系列事物的統稱(例如:貓科類),通類事物一定具備相同的特徵。平常事物的特徵根據特性分爲狀態和行爲,對應到類中就是變量個方法。函數

特徵分類:
    狀態 —— 變量(成員變量)
    行爲 —— 方法(成員方法)
    統稱:類的成員
複製代碼

2.2 類定義的語法格式

class 類名:
    pass
複製代碼

說明:pass是空語句,不具備任何意義,僅爲了保持程序結構的完整性

注意:類名每一個單詞首字母必須大寫,知足大駝峯命名法,例:BlueCatspa

3. 對象

3.1 對象是類的具體表現形式,是類中存在的某個個體。(類是一系列事物的統稱)

3.2 建立對象語法格式

對象名 = 類名()設計

3.3 注意事項

對象的建立不限制數量,一個類能夠建立任意個數的對象code

4. 成員變量

4.1 成員變量的概念

成員變量用於描述對象的固有狀態或屬性。cdn

4.2 定義成員變量語法格式(公有屬性/公有變量)

class 類名:		 
    def __init__(self):
    self.變量名1 = 值1
    self.變量名2 = None
複製代碼

4.3 成員變量定義語法格式(獨有屬性/獨有變量)

對象名.變量名 = 值對象

class Cat:
    def __init__(self):
        self.type = "胖橘"
        self.name = None


cat1 = Cat()
print(cat1.type)
cat1.name = "大帥"
print(cat1.name)
# 給cat1穿衣服
cat1.cloth = "紅色"
複製代碼

說明:在對象名下,以前定義過的變量再用,屬於調用變量,以前沒定義過的變量,屬於新定義的變量,以前沒定義的值,屬從新賦值。blog

4.4 公有變量與獨有變量的區別

  • 公有變量在__init__方法中聲明,每一個隊形都具備該變量
  • 獨有變量在建立對象後聲明,只有當前對象具備此變量
  • 定義對象的獨有變量時,若是獨有變量名與公有變量名相同,視爲修改公有變量的值;若是獨有變量名與公有變量名不相同,視爲定義新的獨有屬性
  • None含義是爲空,表示沒有具體的數據

4.5 變量的調用格式

取值:對象名.變量名字符串

賦值:對象名.變量名 = 值

5.成員方法

5.1 成員方法概念

成員方法用於描述對象的固有行爲

5.2 定義成員方法的語法格式

格式一(無參方法):

class 類名:
        def 方法名(self):
            方法體
複製代碼

格式二(有參方法):

class 類名:
    def 方法名(self,形參1,形參2,...):
       方法體 
複製代碼

5.3 調用成員方法語法格式

格式一(調用無參方法):

對象名.方法名()

格式二(調用有參方法):

對象名.方法名(實參1,實參2,...)

6. __init__方法

6.1 __init__方法的做用

__init__方法,也稱爲構造方法,建立對象時爲對象初始化成員變量

6.2 定義__init__方法語法格式

格式一:

def __init__(self):
    self.變量名1 = 值1
複製代碼

格式二:

def __init__(self,形參1,形參2,…):
    self.__屬性名1 = 形參1
    self.__屬性名2 = 形參2
複製代碼

6.3 __init__方法調用和執行

  • __init__方法在建立對象時被運行,無需手工調用便可執行
  • __init__方法中若是有形參,在建立對象時須要傳遞對應的實參

6.4 魔術方法

魔術方法是在類中聲明、定義的方法,執行時無需手工調用,自動執行。如:init

7. __str__方法

7.1 __str__方法的做用

__str__方法是在使用print函數打印輸出對象到屏幕時被調用的方法,用於返回對象的規範化字符串表現形式(魔術方法)。

7.2 定義__str__方法語法格式

def __str__(self):
    return 打印對象是顯示的信息
複製代碼

8.成員方法調用類成員

8.1 成員方法中調用成員變量的語法格式

self.變量名

8.2 成員方法中調用成員方法語法格式

self.方法名(實參1,實參2,...)

class Cat:
    def catch(self):
        # 1.跳起
        # 2.抓住
        # 3.咬死
        self.jump()
        self.grasp()
        self.bite()
    def jump(self):
        print("貓跳了起來")

    def grasp(self):
        print("貓抓住了老鼠")

    def bite(self):
        print("貓咬死了老鼠")
cat1 = Cat()
cat1.catch()
複製代碼

8.3 self

self僅出如今成員方法中,指代執行該方法的對象,能夠任意書寫aaa,相似於佔位符,替對象佔位。

9. 封裝

9.1 封裝的做用

封裝操做能夠對受訪問保護的成員進行功能開放的控制,達到保護數據不被非法訪問的目的

9.2 定義私有變量語法格式

self.__屬性名 = 值

9.3 定義私有方法語法格式

def __方法名(self,形參1,形參2,…):
    方法體
複製代碼

說明:通常不會對方法私有化

9.4 標準封裝語法格式

變量私有化格式:

self.__屬性名 = 值
複製代碼

提供公共的訪問器格式:

def get_屬性名(self):
    return self.__屬性名
複製代碼

提供公共的修改器格式:

def set_屬性名(self,屬性名):
    self.__屬性名 = 屬性名
複製代碼

注意:get、set都是跟一個下劃線_。
相關文章
相關標籤/搜索