本文實例講述了Python面向對象程序設計中類的定義、實例化、封裝及私有變量/方法。分享給大家供大家參考,具體如下:
1. 定義類
python中定義一個類的格式如下:
class MyClass(object):  def __init__(self,data1,data2):    self.__data1=data1    self.data2=data2  def __func1(self):    print("MyClass類的私有方法被調用!")  def print_data(self):    self.__func1()    print(self.__data1)    print(self.data2)  def setData(self,data):    self.__data1=dataclass1=MyClass('first_data','sencond_data')class1.print_data()class1._MyClass__func1()類通過關鍵字 class 引導,后跟類的名稱,通常第一個字母大寫,類名稱MyClass后的括號內的object表示該類的父類,如果定義的類沒有顯明從哪個類繼承來的,就在括號內使用object,object類是所有類的父類。
__init__是定義的類的構造函數,可以對類的變量進行初始化,每當該類被實例化的時候,就會先執行該構造函數。
在類中定義的函數的一個參數一定要是self,代表類當前的實例化對象,但在調用時,不需要傳遞這個參數。
2. 類的實例
類的實例化方法如下:
obj=MyClass(x,x)
obj是類的實例化對象,MyClass是類名,括號內的變量是類的初始化變量(如果類中有定義的話)。
情況一: 類的初始屬性為空
class MyClass(object):  def __init__(self):    print("MyClass類的構造方法被調用!")class1=MyClass()情況二: 類含有初始屬性
class MyClass(object):  def __init__(self,data1,data2):    self.__data1=data1    self.data2=data2class1=MyClass('first_data','sencond_data')print(class1.data2)3. 類的封裝
封裝、繼承和多態是類的三大特征。類的封裝有兩層含義,一個是對數據的封裝,一個是對實現邏輯即方法的封裝。
數據(屬性)的封裝
還看上一個例子:
class MyClass(object):  def __init__(self,data1,data2):    self.__data1=data1    self.data2=data2class1=MyClass('first_data','sencond_data')print(class1.data2)在這里類MyClass的實例化對象class1就具有了兩個屬性,分別是data1和data2,data1是私有屬性,只能在類內使用,data2是公有屬性,可以在類外使用。data1和data2就是對數據(屬性)的封裝。
實現邏輯(方法)的封裝
class MyClass(object): def __init__(self,data1,data2): self.__data1=data1 self.data2=data2 def printMax(self): if self.__data1>self.data2: print(self.__data1) else: print(self.data2)class1=MyClass(66,88)class1.printMax()
上邊類中的printMax函數實現了比較兩個數據大小并打印的功能,這個實現邏輯在類外部來說是看不到的,只可以調用該接口,相當于一個黑箱子,這就是實現邏輯(方法)的封裝。
新聞熱點
疑難解答