python-類以及如何訪問類中的屬性


創建類
類(Class): 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。 使用class語句來創建一個新類,class之后為類的名稱並以冒號結尾,如下實例:

class ClassName:
   '類的幫助信息'   #類文檔字符串
   class_suite  #類體

下面代碼就創建了一個名為Employee的類.

class Employee:
   # '所有員工的基類'
   empCount = 0
 
   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1
 
   def displayCount(self):
     print "Total Employee %d" % Employee.empCount
 
   def displayEmployee(self):
      print "Name : ", self.name,  ", Salary: ", self.salary

如下代碼創建Employee的實例。

# "創建 Employee 類的第一個對象"
emp1 = Employee("Zara", 2000)
# "創建 Employee 類的第二個對象"
emp2 = Employee("Manni", 5000)

訪問屬性
可以使用點(.)來訪問對象的屬性。使用如下類的名稱訪問類變量:

# 定義類
class Employee:
   # '所有員工的基類'
   empCount = 0
 
   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1
 
   def displayCount(self):
     print "Total Employee %d" % Employee.empCount
 
   def displayEmployee(self):
      print "Name : ", self.name,  ", Salary: ", self.salary
# "創建 Employee 類的第一個對象"
emp1 = Employee("Zara", 2000)
# "創建 Employee 類的第二個對象"
emp2 = Employee("Manni", 5000)
# 訪問類成員
emp1.displayEmployee()
emp2.displayEmployee()

我們也可以對類的屬性進行修改,增加,刪除。

emp1.age = 7  # 添加一個 'age' 屬性
emp1.age = 8  # 修改 'age' 屬性
del emp1.age  # 刪除 'age' 屬性

類的繼承

面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制。繼承完全可以理解成類之間的類型和子類型關系。
繼承語法為 class 派生類名(基類名)://... 基類名寫作括號里,基本類是在類定義的時候,在元組之中指明的。
派生類的聲明,與他們的父類類似,繼承的基類列表跟在類名之后,如下所示:

class SubClassName (ParentClass1[, ParentClass2, ...]):
           'Optional class documentation string'
           class_suite

如下繼承的例子。

class Parent:        # 定義父類
   parentAttr = 100
   def __init__(self):
      print "調用父類構造函數"
 
   def parentMethod(self):
      print '調用父類方法'
 
   def setAttr(self, attr):
      Parent.parentAttr = attr
 
   def getAttr(self):
      print "父類屬性 :", Parent.parentAttr
 
class Child(Parent): # 定義子類
   def __init__(self):
      print "調用子類構造方法"
 
   def childMethod(self):
      print '調用子類方法 child method'
 
c = Child()          # 實例化子類
c.childMethod()      # 調用子類的方法
c.parentMethod()     # 調用父類方法
c.setAttr(200)       # 再次調用父類的方法
c.getAttr()          # 再次調用父類的方法

方法重寫

如果你的父類方法的功能不能滿足你的需求,你可以在子類重寫你父類的方法:

class Parent:        # 定義父類
   def myMethod(self):
      print '調用父類方法'
 
class Child(Parent): # 定義子類
   def myMethod(self):
      print '調用子類方法'
 
c = Child()          # 子類實例
c.myMethod()         # 子類調用重寫方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM