估計講明白能盡力面向象基礎(chǔ)需要再理解
創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為青山企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,青山網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
self第參數(shù)python指實例本身自
class
A屬性x
other第二參數(shù)代表另class
A實例屬性x
__add__重載加號函數(shù)意思兩class
A實例相加結(jié)等于兩實例x變量相加
other.x與self.x指同實例變量x
*k表示可變參數(shù),通過可變參數(shù)實現(xiàn)類似于重載的方法。
通常我們要定義一個函數(shù)的時候,必須要預(yù)先定義這個函數(shù)需要多少個參數(shù)(或者說可以接受多少個參數(shù))。一般情況下這是沒問題的,但是也有在定義函數(shù)的時候,不能知道參數(shù)個數(shù)的情況(想一想C語言里的printf函數(shù)),在Python里,帶*的參數(shù)就是用來接受可變數(shù)量參數(shù)的??匆粋€例子
def funcD(a, b, *c):
print a
print b
print "length of c is: %d " % len(c)
print c
調(diào)用funcD(1, 2, 3, 4, 5, 6)結(jié)果是
1
2
length of c is: 4
(3, 4, 5, 6)
我們看到,前面兩個參數(shù)被a、b接受了,剩下的4個參數(shù),全部被c接受了,c在這里是一個tuple。我們在調(diào)用funcD的時候,至少要傳遞2個參數(shù),2個以上的參數(shù),都放到c里了,如果只有兩個參數(shù),那么c就是一個empty tuple。
將__div__換成__truediv__試試
因為在python 2.x.x 里面 / 是classic division 所以LOVESOO的回答沒有問題
在python 3.x.x / 對應(yīng)的是 true division 所以試試定義 __truediv__
搜 API Changes
python里面沒有重載吧?
正常的重載說的應(yīng)該是函數(shù)方法的重載,即兩個函數(shù)的名稱相同但是參數(shù)不同是重載,會出現(xiàn)重載的情況一般是函數(shù)實現(xiàn)相同功能時,遇到參數(shù)類型可能不同的情況,會出現(xiàn)重載,如比較常見的對于加法的實現(xiàn),如果輸入兩個整數(shù)相加則直接使用整數(shù)加法,如果兩個字符串相加則使用字符串的拼接。輸入的參數(shù)類型不同,其實是兩個不同的函數(shù),這在那種強類型語言中是可以利用函數(shù)重載來實現(xiàn)的,而python中函數(shù)類型是動態(tài)的各種各樣的,所以不需要重載這個機制。相同函數(shù)名就是表示同一個方法。
類,class,用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
函數(shù),是組織好的,可重復(fù)使用的,用來實現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫作用戶自定義函數(shù)。
python語言中類和函數(shù)的區(qū)別
1、規(guī)則不同
類是一種引用數(shù)據(jù)類型,類似于byte、short、int(char)、long、float、double等基本數(shù)據(jù)類型;
函數(shù)必須聲明后才可以被調(diào)用,調(diào)用格式為:函數(shù)名(實參)調(diào)用時函數(shù)名后的小括號中的實參必須和聲明函數(shù)時的函數(shù)括號中的形參個數(shù)相同。
2、主體不同
類是面向?qū)ο蟪绦蛟O(shè)計實現(xiàn)信息封裝的基礎(chǔ);
函數(shù)是指一段在一起的、可以做某一件事的子程序。
3、特點不同
類是一種用戶定義的引用數(shù)據(jù)類型,也稱類類型,每個類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或者傳遞消息的函數(shù),類的實例稱為對象;
函數(shù)分為全局函數(shù)、全局靜態(tài)函數(shù),在類中還可以定義構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、成員函數(shù)、友元函數(shù)、運算符重載函數(shù)、內(nèi)聯(lián)函數(shù)等。