亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

【python小白】 問關(guān)於property的順序問題
僅有的幸福
僅有的幸福 2017-07-05 10:35:06
0
1
885

程式碼如下:

#
class Test(object):
    def __init__(self):
        self.__num = 100
        
    def setNum(self,newNum):
        print("----setter-----")
        self.__num = newNum
    
    def getNum(self):
        print("----getter-----")
        return self.__num
    
    num = 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 = 5000
print(t.num)

運(yùn)行結(jié)果:

##在程式碼中,property的那一部分,get在前面,set在後面,執(zhí)行結(jié)果正常。然後如果把set放在前面,get放在後面,程式就出錯(cuò)了。

我想問下,這個(gè)為什麼跟位置還有關(guān)係呢?不是程式自動(dòng)辨識(shí)的麼?為什麼換了位置就錯(cuò)了?

僅有的幸福
僅有的幸福

全部回覆(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)

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板