[Python-Neuling] Fragen zur Reihenfolge der Eigenschaften stellen
仅有的幸福
仅有的幸福 2017-07-05 10:35:06
0
1
748

Der Code lautet wie folgt:

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)

Laufergebnis:

Im Code steht für den Eigenschaftsteil get vorne und set hinten, und das Ausführungsergebnis ist normal. Wenn Sie dann das Set vorne platzieren und hinten einsteigen, geht das Programm schief.

Ich würde gerne fragen, warum das etwas mit dem Standort zu tun hat? Wird es vom Programm nicht automatisch erkannt? Warum ist es falsch, die Position zu ändern?

仅有的幸福
仅有的幸福

Antworte allen(1)
伊谢尔伦

我试了一下,错误信息是:
TypeError: getNum() takes 1 positional argument but 2 were given

getter接收一个参数,setter接收两个参数,互换了传入的参数个数就不匹配了。

这个定义里是有顺序的:
class property(fget=None, fset=None, fdel=None, doc=None)

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!