第一次使用Python,无法使add和Assign运算符正常工作。口译员一直说SyntaxError: invalid syntax
。有谁知道如何解决这一问题?
def addRead(self, i=1):
if(i<1):
return self.getNumPages += i
也试图无济于事。
def addRead(self, i=1):
if(i<1):
return
self.getNumPages += i
当您收到的消息getNumPages
是一种方法时,最直观的方法是调用它以获取结果。
但这与您正在做的事情矛盾:
如果它是数据属性,则+=
可以使用。但是您不能将某些东西重新分配给方法调用的结果。
因此,根据您要尝试执行的操作,可以执行以下操作之一:
numpages = self.getNumPages() # first step: get the result
numpages += i # get the new value
# or just: numpages = self.getNumPages() + i
self.setNumPages(numpages) # set the new value would be the equivalent of the += stuff.
return numpages
如果您不想重新分配值,则只需执行
return self.getNumPages() + i
但是请注意,Python中的getter和setter方法非常不寻常。您可以直接使用属性,也可以将它们包装在属性中,这本质上是一种“内置的getter / setter”东西。
class Whatever:
def getNumPages(self):
return self._numpages
def setNumPages(self, newone)
self._numpages = newone
# now the property stuff:
@property
def numpages(self): # the getter
return self.getNumPages()
@numpages.setter
def numpages(self, newone)
self.setNumPages(newone)
此属性(本质上是无用的,仅当设置或获取被认为具有副作用或也要修改/计算其他内容时才使用)使我们能够执行
self.numpages += i
return self.numpages
这可能是您想要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句