gpt4 book ai didi

python - 在 python 类中存储和检查 boolean 值

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:11 25 4
gpt4 key购买 nike

所以我试图创建一个对象,它基本上有一个采用两个坐标的构造函数,xcoordycoord。我进一步创建了移动坐标的方法,我必须检查该点是否有效(有效性标准是如果坐标超出指定范围,它应该返回 False 否则 True )。

问题:

我的类只返回初始点的有效性,而不是转移点的有效性。

我需要什么来更正我的代码?

代码:

class Point:
MaxScreenSize=10
def __init__(self,x,y):
self.xcoord=x
self.ycoord=y
if 0>self.xcoord or self.xcoord>Point.MaxScreenSize or 0>self.ycoord or self.ycoord>Point.MaxScreenSize:
Point.isValidPt=False
else:
Point.isValidPt=True
def translateX(self,shiftX):
self.xcoord=self.xcoord+shiftX
def translateY(self,shiftY):
self.ycoord=self.ycoord+shiftY

测试代码:

我尝试了我的代码,它只为我的初始点返回 isValidFunction 变量(给我 True 而不是 False 用于以下代码)

p=Point(9,2) 
p.translateX(20)
p.translateY(10)
p.isValidPt

最佳答案

您的isValidPt 仅在实例化类时计算。而是尝试类似的东西:

代码:

class Point:
MaxScreenSize = 10

def __init__(self, x, y):
self.xcoord = x
self.ycoord = y

def translateX(self, shiftX):
self.xcoord = self.xcoord + shiftX

def translateY(self, shiftY):
self.ycoord = self.ycoord + shiftY

@property
def isValidPt(self):
return (
0 <= self.xcoord <= Point.MaxScreenSize and
0 <= self.ycoord <= Point.MaxScreenSize
)

测试代码:

p = Point(9, 2)
p.translateX(20)
p.translateY(10)
print(p.isValidPt)

结果:

False

关于python - 在 python 类中存储和检查 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44362184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com