Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
訪問類屬性
您可以使用點號 . 來訪問對象的屬性,如下:
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
訪問類屬性
您可以使用點號 . 來訪問對象的屬性,如下:
Python內置類屬性
- __dict__ :類的屬性
- __doc__ :類的文檔字符串
- __name__: 類名
- __module__: 類定義所在的模塊
- __bases__ :類的所有父類構成元素
如下:
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
訪問類屬性
您可以使用點號 . 來訪問對象的屬性,如下:
Python內置類屬性
- __dict__ :類的屬性
- __doc__ :類的文檔字符串
- __name__: 類名
- __module__: 類定義所在的模塊
- __bases__ :類的所有父類構成元素
如下:
添加、刪除、修改類的屬性
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
訪問類屬性
您可以使用點號 . 來訪問對象的屬性,如下:
Python內置類屬性
- __dict__ :類的屬性
- __doc__ :類的文檔字符串
- __name__: 類名
- __module__: 類定義所在的模塊
- __bases__ :類的所有父類構成元素
如下:
添加、刪除、修改類的屬性
你也可以使用以下函數的方式來訪問屬性:
- getattr(obj, name[, default]) :訪問對象的屬性。
- hasattr(obj,name) :檢查是否存在一個屬性。
- setattr(obj,name,value) :設置一個屬性。如果屬性不存在,會創建一個新屬性。
- delattr(obj, name) : 刪除屬性。
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
訪問類屬性
您可以使用點號 . 來訪問對象的屬性,如下:
Python內置類屬性
- __dict__ :類的屬性
- __doc__ :類的文檔字符串
- __name__: 類名
- __module__: 類定義所在的模塊
- __bases__ :類的所有父類構成元素
如下:
添加、刪除、修改類的屬性
你也可以使用以下函數的方式來訪問屬性:
- getattr(obj, name[, default]) :訪問對象的屬性。
- hasattr(obj,name) :檢查是否存在一個屬性。
- setattr(obj,name,value) :設置一個屬性。如果屬性不存在,會創建一個新屬性。
- delattr(obj, name) : 刪除屬性。
類的繼承
面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制,繼承最大的好處是子類獲得了父類的全部功能。
通過繼承創建的新類稱為子類或派生類,被繼承的類稱為基類、父類,如果在繼承元組中列多個的類,那麼它就被稱作"多重繼承" 。
如下,實例中Subclass類繼承了TestOps,Subclass擁有了TestOps所有的方法和屬性。
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
訪問類屬性
您可以使用點號 . 來訪問對象的屬性,如下:
Python內置類屬性
- __dict__ :類的屬性
- __doc__ :類的文檔字符串
- __name__: 類名
- __module__: 類定義所在的模塊
- __bases__ :類的所有父類構成元素
如下:
添加、刪除、修改類的屬性
你也可以使用以下函數的方式來訪問屬性:
- getattr(obj, name[, default]) :訪問對象的屬性。
- hasattr(obj,name) :檢查是否存在一個屬性。
- setattr(obj,name,value) :設置一個屬性。如果屬性不存在,會創建一個新屬性。
- delattr(obj, name) : 刪除屬性。
類的繼承
面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制,繼承最大的好處是子類獲得了父類的全部功能。
通過繼承創建的新類稱為子類或派生類,被繼承的類稱為基類、父類,如果在繼承元組中列多個的類,那麼它就被稱作"多重繼承" 。
如下,實例中Subclass類繼承了TestOps,Subclass擁有了TestOps所有的方法和屬性。
方法重寫
如果父類方法的功能不能滿足我們的需求,我們可以在子類重寫你父類的方法,如下我們在Subclass中重寫了父類TestOps中的aoj方法。
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
訪問類屬性
您可以使用點號 . 來訪問對象的屬性,如下:
Python內置類屬性
- __dict__ :類的屬性
- __doc__ :類的文檔字符串
- __name__: 類名
- __module__: 類定義所在的模塊
- __bases__ :類的所有父類構成元素
如下:
添加、刪除、修改類的屬性
你也可以使用以下函數的方式來訪問屬性:
- getattr(obj, name[, default]) :訪問對象的屬性。
- hasattr(obj,name) :檢查是否存在一個屬性。
- setattr(obj,name,value) :設置一個屬性。如果屬性不存在,會創建一個新屬性。
- delattr(obj, name) : 刪除屬性。
類的繼承
面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制,繼承最大的好處是子類獲得了父類的全部功能。
通過繼承創建的新類稱為子類或派生類,被繼承的類稱為基類、父類,如果在繼承元組中列多個的類,那麼它就被稱作"多重繼承" 。
如下,實例中Subclass類繼承了TestOps,Subclass擁有了TestOps所有的方法和屬性。
方法重寫
如果父類方法的功能不能滿足我們的需求,我們可以在子類重寫你父類的方法,如下我們在Subclass中重寫了父類TestOps中的aoj方法。
類屬性與方法
類的私有屬性
__reference_age:兩個下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時 self.__reference_age,這樣就確保了外部代碼不能隨意修改對象內部的狀態,這樣通過訪問限制的保護,代碼更加健壯。
類的方法
def aoj(self)在類的內部,使用 def 關鍵字可以為類定義一個方法,與一般函數定義不同,類方法必須包含參數self,且為第一個參數。
類的私有方法
def __name_show(self):兩個下劃線開頭,聲明該方法為私有方法,不能在類的外部調用,在類的內部調使用 self.__name_show方式。
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
訪問類屬性
您可以使用點號 . 來訪問對象的屬性,如下:
Python內置類屬性
- __dict__ :類的屬性
- __doc__ :類的文檔字符串
- __name__: 類名
- __module__: 類定義所在的模塊
- __bases__ :類的所有父類構成元素
如下:
添加、刪除、修改類的屬性
你也可以使用以下函數的方式來訪問屬性:
- getattr(obj, name[, default]) :訪問對象的屬性。
- hasattr(obj,name) :檢查是否存在一個屬性。
- setattr(obj,name,value) :設置一個屬性。如果屬性不存在,會創建一個新屬性。
- delattr(obj, name) : 刪除屬性。
類的繼承
面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制,繼承最大的好處是子類獲得了父類的全部功能。
通過繼承創建的新類稱為子類或派生類,被繼承的類稱為基類、父類,如果在繼承元組中列多個的類,那麼它就被稱作"多重繼承" 。
如下,實例中Subclass類繼承了TestOps,Subclass擁有了TestOps所有的方法和屬性。
方法重寫
如果父類方法的功能不能滿足我們的需求,我們可以在子類重寫你父類的方法,如下我們在Subclass中重寫了父類TestOps中的aoj方法。
類屬性與方法
類的私有屬性
__reference_age:兩個下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時 self.__reference_age,這樣就確保了外部代碼不能隨意修改對象內部的狀態,這樣通過訪問限制的保護,代碼更加健壯。
類的方法
def aoj(self)在類的內部,使用 def 關鍵字可以為類定義一個方法,與一般函數定義不同,類方法必須包含參數self,且為第一個參數。
類的私有方法
def __name_show(self):兩個下劃線開頭,聲明該方法為私有方法,不能在類的外部調用,在類的內部調使用 self.__name_show方式。
Python不允許實例化的類訪問私有數據,但你可以使用 object._className__attrName( 對象名._類名__私有屬性名 )訪問屬性,如下:
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
- 類 :用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
- 類變量 :類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
- 類方法 :類中定義的函數。
- 實例化 :創建一個類的實例,類的具體對象。
- 繼承 :即一個派生類(derived class)繼承基類(base class)的字段和方法。
- 方法重寫 :如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,即方法的重寫。
創建類
使用class語句來創建一個類,class後面緊接著是類名,即TestOps,類名通常是大寫開頭的單詞,並以冒號結尾,類的幫助信息可以通過Classname.__doc__查看,如下。
實例化
定義好了TestOps類,就可以根據TestOps類創建出TestOps的實例,創建實例是通過 ClassName()實現的。
說明如下:
- reference_age是一個類變量,你可以在內部類或外部類使用 TestOps.reference_age調用。
- __init__()方法是一種特殊的方法,被稱為類的初始化方法,當創建了這個類的實例時就會調用該方法,注意到__init__方法的第一個參數永遠是self,表示創建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創建的實例本身。有了__init__方法,在創建實例的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解釋器自己會把實例變量傳進去:
- self 代表類的實例,self 在定義類的方法時是必須有的,但是在調用時不必傳入相應的參數。
創建實例對象
類是創建實例的模板,而實例則是一個個具體的對象,各個實例擁有的數據都互相獨立,互不影響,類的實例化類似函數調用方式。
以下使用類的名稱 TestOps 來實例化,並通過__init__方法接收參數。
訪問類屬性
您可以使用點號 . 來訪問對象的屬性,如下:
Python內置類屬性
- __dict__ :類的屬性
- __doc__ :類的文檔字符串
- __name__: 類名
- __module__: 類定義所在的模塊
- __bases__ :類的所有父類構成元素
如下:
添加、刪除、修改類的屬性
你也可以使用以下函數的方式來訪問屬性:
- getattr(obj, name[, default]) :訪問對象的屬性。
- hasattr(obj,name) :檢查是否存在一個屬性。
- setattr(obj,name,value) :設置一個屬性。如果屬性不存在,會創建一個新屬性。
- delattr(obj, name) : 刪除屬性。
類的繼承
面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制,繼承最大的好處是子類獲得了父類的全部功能。
通過繼承創建的新類稱為子類或派生類,被繼承的類稱為基類、父類,如果在繼承元組中列多個的類,那麼它就被稱作"多重繼承" 。
如下,實例中Subclass類繼承了TestOps,Subclass擁有了TestOps所有的方法和屬性。
方法重寫
如果父類方法的功能不能滿足我們的需求,我們可以在子類重寫你父類的方法,如下我們在Subclass中重寫了父類TestOps中的aoj方法。
類屬性與方法
類的私有屬性
__reference_age:兩個下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時 self.__reference_age,這樣就確保了外部代碼不能隨意修改對象內部的狀態,這樣通過訪問限制的保護,代碼更加健壯。
類的方法
def aoj(self)在類的內部,使用 def 關鍵字可以為類定義一個方法,與一般函數定義不同,類方法必須包含參數self,且為第一個參數。
類的私有方法
def __name_show(self):兩個下劃線開頭,聲明該方法為私有方法,不能在類的外部調用,在類的內部調使用 self.__name_show方式。
Python不允許實例化的類訪問私有數據,但你可以使用 object._className__attrName( 對象名._類名__私有屬性名 )訪問屬性,如下: