1. 程式人生 > >Python_從零開始學習_(35) 定義簡單類

Python_從零開始學習_(35) 定義簡單類

目錄

1.  定義簡單的類 (只包含方法)

面向物件更大 封裝, 在 一個類中 封裝 多個方法, 這樣 通過這個類創建出來的物件, 就可以直接呼叫這些方法了!

1.1  定義只包含方法的類

  • 在 Python 中要定義一個只包含方法的類,  語法格式如下:
class 類名:
    
    def 方法1(self, 引數列表):
        pass

    def 方法2(self, 引數列表):
        pass
  • 方法 的定義格式和之前學習過的 函式 幾乎一樣
  • 區別在於第一個引數必須是 self 

注意:  類名 的 命名規則 要符合 大駝峰命名法

1.2 建立物件

  • 當一個類定義完成之後,  要使用這個類來穿件物件,  語法格式如下
物件變數 = 類名()

1.3  第一個面向物件程式

需求

  • 小貓 魚, 小貓

分析

  1. 定義一個貓類 Cat
  2. 定義兩個方法 eat 和 drink
  3. 按照需求 ---- 不需要定義屬性
class Cat:
    """這是一個貓類"""

    def eat(self):
        print("小貓愛吃魚")

    def drink(self):
        print("小貓要喝水")


# 建立貓物件
tom = Cat()
tom.eat()
tom.drink()

引用概念的強調

在面向物件開發中, 引用的概念是同樣適用的!

  • 在 Python 中使用類 建立物件之後,  tom 變數中 仍然記錄的是 物件在記憶體中的地址
  • 也就是 tom 變數 引用新建的貓物件
  • 使用 print 輸出 物件變數,  預設情況下,  是能夠輸出這個變數 引用的物件 是哪一個類建立的物件,  以及 在記憶體中的地址 (十六進位制表示)

提示 : 在計算機中,  通常使用 十六進位制 表示 記憶體地址

  • 十進位制 十六進位制 都是用來表達數字的, 只是表示的方式不一樣
  • 十進位制 十六進位制 的數字之間可以來回轉換
  • %d 可以以 10 進位制 輸出數字
  • %x 可以以 16 進位制 輸出數字

案例進階 ---- 使用 Cat 類再建立一個物件

lazy_cat = Cat()
lazy_cat.eat()
lazy_cat.drink()

提問: tom 和 lazy_cat 是同一個物件嗎?  不是!