【python小白】 問關(guān)于property的順序問題
問題描述
代碼如下:
class Test(object): def __init__(self):self.__num = 100 def setNum(self,newNum):print('----setter-----')self.__num = newNumdef getNum(self):print('----getter-----')return self.__numnum = property(getNum,setNum) #get在前,set在后 #num = property(setNum,getNum) #set在前,get在后 t = Test()print(t.getNum())t.setNum(2000)print(t.getNum())print('----'*10)t.num = 5000print(t.num)
運行結(jié)果:
在代碼中,property的那一部分,get在前面,set在后面,執(zhí)行結(jié)果正常。然后如果把set放在前面,get放在后面,程序就出錯了。
我想問下,這個為什么跟位置還有關(guān)系呢?不是程序自動識別的么?為什么換了位置就錯誤了?
問題解答
回答1:我試了一下,錯誤信息是:TypeError: getNum() takes 1 positional argument but 2 were given
getter接收一個參數(shù),setter接收兩個參數(shù),互換了傳入的參數(shù)個數(shù)就不匹配了。
這個定義里是有順序的:class property(fget=None, fset=None, fdel=None, doc=None)
相關(guān)文章:
1. HTML5禁止img預覽該怎么解決?2. javascript - vue+iview upload傳參失敗 跨域問題后臺已經(jīng)解決 仍然報403,這是怎么回事啊?3. python - django 按日歸檔統(tǒng)計訂單求解4. objective-c - 從朋友圈跳到我的APP 如何實現(xiàn)?5. 百度地圖api - Android 百度地圖 集成了定位,導航 相互的jar包有沖突?6. 網(wǎng)頁爬蟲 - python爬蟲用BeautifulSoup爬取<s>元素并寫入字典,但某些div下沒有這一元素,導致自動寫入下一條,如何解決?7. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風格檢查怎么辦。。。8. 請教一個python字符串處理的問題?9. sql語句 - mysql中關(guān)聯(lián)表查詢問題10. 怎么可以實現(xiàn)在手機瀏覽器看到鏈接的title屬性,就是鼠標放上去會有一個tip效果的
