創(chuàng)建類的方法比較簡單,如下:
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站建設、成都網(wǎng)站設計、雨湖網(wǎng)絡推廣、成都微信小程序、雨湖網(wǎng)絡營銷、雨湖企業(yè)策劃、雨湖品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供雨湖建站搭建服務,24小時服務熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
class Person:
注意,類的名稱一般用大寫字母開頭,這是慣例。當然,如果故意不遵循此慣例,也未嘗不可,但是,會給別人閱讀乃至于自己以后閱讀帶來麻煩。既然大家都是靠右走的,你就別非要在路中間睡覺了。
接下來,一般都要編寫構造函數(shù),在寫這個函數(shù)之前,先解釋一下什么是構造函數(shù)。
復制代碼 代碼如下:
class Person:
def __init__(self, name, lang, website):
self.name = name
self.lang = lang
self.website = website
上面的類中,首先呈現(xiàn)出來的是一個名為:__init__()的函數(shù),注意,這個函數(shù)是以兩個下劃線開始,然后是init,最后以兩個下劃線結束。這是一個函數(shù),就跟我們此前學習過的函數(shù)一樣的函數(shù)。但是,這個函數(shù)又有點奇特,它的命名是用“__”開始和結束。
請看官在這里要明確一個基本概念,類就是一種對象類型,和跟前面學習過的數(shù)值、字符串、列表等等類型一樣。比如這里構建的類名字叫做Person,那么就是我們要試圖建立一種對象類型,這種類型被稱之為Person,就如同有一種對象類型是list一樣。
在構建Person類的時候,首先要做的就是對這種類型進行初始化,也就是要說明這種類型的基本結構,一旦這個類型的對象被調(diào)用了,第一件事情就是要運行這個類型的基本結構,也就是類Person的基本結構。就好比我們每個人,在頭腦中都有關于“人”這樣一個對象類型(對應著類),一旦遇到張三(張三是一個具體人),我們首先運行“人”這個類的基本結構:一個鼻子兩只眼,鼻子下面一張嘴。如果張三符合這個基本機構,我們不會感到驚詫(不報錯),如果張三不符合這個基本結構(比如三只眼睛),我們就會感到驚詫(報錯了)。
由于類是我們自己構造的,那么基本結構也是我們自己手動構造的。在類中,基本結構是寫在__init__()這個函數(shù)里面。故這個函數(shù)稱為構造函數(shù),擔負著對類進行初始化的任務。
還是回到Person這個類,如果按照上面的代碼,寫好了,是不是__init__()就運行起來了呢?不是!這時候還沒有看到張三呢,必須看到張三才能運行。所謂看到張三,看到張三這樣一個具體的實實在在的人,此動作,在python中有一個術語,叫做實例化。當類Person實例化后立刻運行__init__()函數(shù)。
__init__屬于魔法函數(shù)的一種,讓我們來看一下它的前世今生吧。后面介紹了其他的魔法函數(shù):__ str__()、__ new__()、__ unicode__()、__ call__()、__ len__()、__repr__()等等
所謂魔法函數(shù)(Magic Methods),是Python的一種高級語法,允許你在類中自定義函數(shù)(函數(shù)名格式一般為__xx__),并綁定到類的特殊方法中。比如在類A中自定義__str__()函數(shù),則在調(diào)用str(A())時,會自動調(diào)用__str__()函數(shù),并返回相應的結果。在我們平時的使用中,可能經(jīng)常使用__init__函數(shù)(構造函數(shù))和__del__函數(shù)(析構函數(shù)),其實這也是魔法函數(shù)的一種。
Python中以雙下劃線(__xx__)開始和結束的函數(shù)(不可自己定義)為魔法函數(shù)。
調(diào)用類實例化的對象的方法時自動調(diào)用魔法函數(shù)。
在自己定義的類中,可以實現(xiàn)之前的內(nèi)置函數(shù)。
在該對象不在使用的時候自動調(diào)用,怎么說呢,?就是沒有引用指向該對象的時候。
Python編程中類的概念可以比作是某種類型集合的描述,如“人類”可以被看作一個類,然后用人類這個類定義出每個具體的人——你、我、他等作為其對象。類還擁有屬性和功能,屬性即類本身的一些特性,如人類有名字、身高和體重等屬性,而具體值則會根據(jù)每個人的不同;功能則是類所能實現(xiàn)的行為,如人類擁有吃飯、走路和睡覺等功能
類定義一般為:
class 類名[(父類名)]:[成員函數(shù)及成員變量],
類名為這個類的名稱,而父類名為可選,但定義父類名后,子類則擁有父類的相應屬性和方法。在用類定義成對象時,會先調(diào)用__init__構造函數(shù),以初始化對象的各屬性,類的各屬性(成員變量)均可以在構造函數(shù)中定義,定義時只要加上對象指針就好。而在對象銷毀時,則會調(diào)用__del__析構函數(shù),定義類的成員函數(shù)時,必須默認一個變量(類似于C++中的this指針)代表類定義的對象本身,這個變量的名稱可自行定義,一般使用self變量表示
基類和父類也是差不多的意思。
超類的叫法跟super關鍵詞有關,其實就是如果當前類中不存在的方法或者變量,回按照繼承鏈一直往上回溯,直到object類。
實例化就是從類創(chuàng)建對象。
類的概念:
類 Class: 用來描述具體相同的屬性和方法的對象的集合。定義了該集合中每個對象所共有的屬性和方法。對象是類的示例。
類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數(shù)體之外。類變量通常不作為實例變量使用。
實例變量:定義在方法中的變量,只作用于當前實例的類。
數(shù)據(jù)成員:類變量或者實例變量用于處理類及其實例對象的相關數(shù)據(jù)。
方法:類中定義的函數(shù)。在類內(nèi)部,使用 def 關鍵字來定義一個方法,與一般函數(shù)定義不同,類方法必須包含參數(shù) self, 且為第一個參數(shù),self 代表的是類的實例。
構造函數(shù):即__init()__,特殊的方法,在對象創(chuàng)建的時候被自動調(diào)用。
析構函數(shù):即__del()__,特殊的方法,在對象被銷毀時被自動調(diào)用。
實例化:創(chuàng)建一個類的實例,類的具體對象。就是將創(chuàng)建的類賦值給另一個變量。理解為賦值即可,a = class(),這個過程,就叫做實例化
對象:通過類定義的數(shù)據(jù)結構實例。對象包括兩個數(shù)據(jù)成員(類變量和實例變量)和方法。
繼承:即一個派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個派生類的對象作為一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬”是一個(is-a)”關系(例圖,Dog是一個Animal)。
方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其 進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。
————————————————
原文鏈接:
網(wǎng)頁鏈接