Rumah  >  Soal Jawab  >  teks badan

[Python Newbie] Bertanya soalan tentang susunan sifat

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?

仅有的幸福仅有的幸福2662 hari yang lalu752

membalas semua(1)saya akan balas

  • 伊谢尔伦

    伊谢尔伦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)

    balas
    0
  • Batalbalas