Python程式无法运作。主要部分持续显示错误

时间:2018-09-25 18:43:32

标签: python oop

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'

2 个答案:

答案 0 :(得分:3)

不要忘记在构造函数中传递zd,例如:

p1 = point(1,2)

此外,在display函数中,您尝试将self.x设置为self.z,将self.y设置为self.dself.zself.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重复这些小错误