通过if语句增加

时间:2019-02-23 01:32:22

标签: python

 if pt.Z +=1    

    zHeight +=1

我正在尝试编写一个代码,该代码说明如果数字增加,则通过if语句增加新值。

由于上述原因,我得到的语法无效。

我该怎么办?

2 个答案:

答案 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