【python小白】 問(wèn)關(guān)于property的順序問(wèn)題
問(wèn)題描述
代碼如下:
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)
運(yùn)行結(jié)果:

在代碼中,property的那一部分,get在前面,set在后面,執(zhí)行結(jié)果正常。然后如果把set放在前面,get放在后面,程序就出錯(cuò)了。
我想問(wèn)下,這個(gè)為什么跟位置還有關(guān)系呢?不是程序自動(dòng)識(shí)別的么?為什么換了位置就錯(cuò)誤了?
問(wèn)題解答
回答1:我試了一下,錯(cuò)誤信息是:TypeError: getNum() takes 1 positional argument but 2 were given
getter接收一個(gè)參數(shù),setter接收兩個(gè)參數(shù),互換了傳入的參數(shù)個(gè)數(shù)就不匹配了。
這個(gè)定義里是有順序的:class property(fget=None, fset=None, fdel=None, doc=None)
相關(guān)文章:
1. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””2. docker-compose中volumes的問(wèn)題3. boot2docker無(wú)法啟動(dòng)4. nignx - docker內(nèi)nginx 80端口被占用5. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.6. docker容器呢SSH為什么連不通呢?7. node.js - antdesign怎么集合react-redux對(duì)input控件進(jìn)行初始化賦值8. dockerfile - 為什么docker容器啟動(dòng)不了?9. java - SSH框架中寫分頁(yè)時(shí)service層中不能注入分頁(yè)類10. 關(guān)于docker下的nginx壓力測(cè)試

網(wǎng)公網(wǎng)安備