if pt.Z +=1
zHeight +=1
我正在尝试编写一个代码,该代码说明如果数字增加,则通过if语句增加新值。
由于上述原因,我得到的语法无效。
我该怎么办?
答案 0 :(得分:1)
PEP 572中提到了赋值表达式运算符:=
,并将其包含在python 3.8中。当前python版本为3.7.2,因此该功能尚未发布。
发布后,您的代码将如下所示:
if (pt.Z := pt.Z + 1):
zHeight += 1
当前的解决方法只是在两个单独的语句中完成它们:
pt.Z += 1
if pt.Z:
zHeight += 1
答案 1 :(得分:0)
因此,您有一个类(假设该类称为Point
,并且有一个对象pt
是该类的实例),并且您正在尝试使它成为此类递增一个属性(例如,Z
)也会使另一个属性(例如,zHeight
)同时增加。
也许有一些方法可以覆盖在获取属性并设置属性时运行的例程,但是更简单的方法是仅创建方法。代替
pt.Z += 1
您将在Point
类中实现一个名为increment_Z
的函数,如下所示:
def increment_Z(self, by_how_much=1):
self.Z += by_how_much
self.zHeight += by_how_much
然后,您以后将调用该函数,而不是直接访问该属性:
pt.increment_Z() # to increment by 1
pt.increment_Z(3) # to increment by 3