class point:
def __init__(self,z,d):
self.x = z
self.y = d
def display(self,z,d):
self.x = self.z
self.y = self.d
def setX(self, z):
self.x = z
def setY(self, d):
self.y = d
def getX(self):
return self.x
def getY(self):
return self.y
def show(self):
print(self.x)
print(self.y)
p1 = point() //error
print("Point P1:")
p1.show()
print("Updated value:")
p1.display(5, 6)
p1.setX(9)
p1.setY(4)
p1.show()
print("Point P2:")
p2=point()
p2.setX(9)
p2.setY(4)
p2.show()
print("Updated value:")
p2.display(6, 3)
p2.show()
我的程序不断向我显示对象部分中缺少z和d的错误,我一直不尝试纠正它,但我不断尝试显示更多的错误。
Traceback (most recent call last):
File "P:\xxxyyy.py", line 29, in <module>
p1 = point() //error
TypeError: __init__() missing 2 required positional arguments: 'z' and 'd'
答案 0 :(得分:3)
不要忘记在构造函数中传递z
和d
,例如:
p1 = point(1,2)
此外,在display
函数中,您尝试将self.x
设置为self.z
,将self.y
设置为self.d
。 self.z
和self.d
不存在(自我意味着它应该是一个类属性,不是),您应该使用函数的输入参数:
self.x = z
self.y = d
答案 1 :(得分:0)
class point:
def __init__(self,z,d):
self.x = z
self.y = d
def display(self,z,d):
self.x = z #not self.z
self.y = d #not self.d
def setX(self, z):
self.x = z
def setY(self, d):
self.y = d
def getX(self):
return self.x
def getY(self):
return self.y
def show(self):
print(self.x)
print(self.y)
首先解决此问题,您将使用其中包含的两个新变量来更新display
,因此我们仅将这些变量强制转换为self.z
/ self.d
p1 = point(1,2)
print("Point P1:")
p1.show()
使用需要的__ini__(self, z, d)
值和z and d
值创建实例
print("Updated value:")
p1.display(5, 6)
p1.setX(9)
p1.setY(4)
p1.show()
如果p1.display
将值更新为5,6
,那么为什么又用setX
/ setY
再次更新它们,而您正在制作z=5, d=6
,然后{{1 }}
然后您只需为z=9 d=4
重复这些小错误