1. 程式人生 > 程式設計 >Python之Class&Object用法詳解

Python之Class&Object用法詳解

類和物件的概念很難去用簡明的文字描述清楚。從知乎上面的一個回答中可以嘗試去理解:

物件:物件是類的一個例項(物件不是找個女朋友),有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。

類:類是一個模板,它描述一類物件的行為和狀態。

我覺得有一本書對這個類與物件描述的特別好:Head First Java第2版中文版,大家可以通過Java去學習類和物件。

class

class是用來定義類的。類在面向物件程式設計裡面是很有用的,能夠大大提升開發效率和程式碼維護性。直接上程式碼學習:

class student(object):
  def print_info(self):
    print("student's info is very important!")

student1 = student()
student1.print_info()

執行結果如圖:

class student():
  def __init__(self,name,gender):
    self.Name = name
    self.Gender = gender
    print("student's name is ",' and it is a ',gender)

testman = student("Mike","Male")

這個類可以通過一個__init__ 進行初始化,相當於定義類了。在主程式碼中,先要進行例項化,即testman = student() 然後才能呼叫裡面的方法。執行結果如下:

繼承

關於繼承,就是子類可以繼承父類的公有函式。例如:

class Parent:
  def Family(self):
    print("we are family")

class Child(Parent):
  pass

father = Parent()
son = Child()

father.Family()
son.Family()

在這裡,Parent 類是父類,Child 類是子類,但是通過定義,繼承了父類。所以在後面例項化之後,son 依然可以呼叫父類的函式。最後的執行結果如下:

override

當然,子類除了繼承,還可以重寫父類的函式功能。

class Parent:
  def Family(self):
    print("we are family")

class Child(Parent):
  def Family(self):
    print("hey,i am son")

father = Parent()
son = Child()

father.Family()
son.Family()

在這個例子中,Child 類重寫了父類函式裡面的Family 函式,最後的執行結果如下:

super

super是一個超類。這個概念很抽象,但是用例子來說明一下就不會那麼抽象了。

class Parent:
  def Family(self):
    print("we are family")

class Child(Parent):
  def Family(self):
    print("hey,i am son")
    super(Child,self).Family()
    print("again,i am son")

father = Parent()
son = Child()

father.Family()
son.Family()

執行結果如下:

從上面的例子很容易看出,super 就是將父類的函式再呼叫了一次。

以上這篇Python之Class&Object用法詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。