1. 程式人生 > >類的實例化過程

類的實例化過程

初始 編程 指向 ood 過程 style 區別 -- 構造方法

一、定義一個類

class Dog(object):   # 定義class

    def __init__(self, name):  # 構造函數,構造方法 == 初始化方法
        self.name = name   # d.name = name

    def say_hi(self):   # 類的方法
        print("Hello, I am a dog. My name is", self.name)

    def eat(self, food):
        print("%s is eating %s." % (self.name, food))


d = Dog("xiaohei")  # Dog(d,"xiaohei")  d == self

# d 實例化的對象即實例,類中的self相當於實例

d.say_hi()   # d.say_hai(d)

d.eat(‘beaf‘)
  • 第一種方法__init__()方法是一種特殊的方法,被稱為類的構造函數或初始化方法,當創建了這個類的實例時就會調用該方法
  • self 代表類的實例,self 在定義類的方法時是必須有的,雖然在調用時不必傳入相應的參數。

二、self代表的實例,而非類

  類的方法與普通的函數只有一個特別的區別——它們必須有一個額外的第一個參數名稱, 按照慣例它的名稱是 self。

class Dog(object):

    def prt(self):
        print(self)
        print(self.__class__)

d = Dog()


print(d)
print("-------------")
d.prt()


#輸出
<__main__.Dog object at 0x000001DDBD10C5F8>
-------------
<__main__.Dog object at 0x000001DDBD10C5F8>
<class ‘__main__.Dog‘>

  從執行結果可以很明顯的看出,self 代表的是類的實例,代表當前對象的地址,而 self.class 則指向類。

三、創建實例對象

  實例化類其他編程語言中一般用關鍵字 new,但是在 Python 中並沒有這個關鍵字,類的實例化類似函數調用方式。  

# 創建一個Dog類的對象
d = Dog("xiaohei")

  實例化後的對象又稱之為:實例

四、訪問屬性  

  您可以使用點(.)來訪問對象的屬性 

# 通過 d.方法   來訪問屬性
d.eat(‘beaf‘)

#輸出
xiaohei is eating beaf.

  

類的實例化過程