Rumah > Soal Jawab > teks badan
Kod adalah seperti berikut:
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)
Hasil larian:
Dalam kod, untuk bahagian harta, dapatkan adalah di hadapan dan set adalah di belakang, dan hasil pelaksanaan adalah normal. Kemudian jika anda meletakkan set di hadapan dan masuk ke belakang, program akan menjadi salah.
Saya ingin bertanya, kenapa ini ada kaitan dengan lokasi? Bukankah ia diiktiraf secara automatik oleh program? Kenapa salah tukar jawatan?
伊谢尔伦2017-07-05 10:37:06
Saya mencubanya dan mesej ralatnya ialah:
TypeError: getNum() mengambil 1 hujah kedudukan tetapi 2 diberikan
Pengambil menerima satu parameter, dan penetap menerima dua parameter Jika bilangan parameter yang dihantar ditukar, ia tidak akan sepadan.
Terdapat susunan dalam definisi ini: class property(fget=None, fset=None, fdel=None, doc=None)