Py学习  »  Python

python程序不工作..主要部分显示错误

Sawako Kuronuma • 6 年前 • 1673 次点击  
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'
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30645
 
1673 次点击  
文章 [ 2 ]  |  最新文章 6 年前
vash_the_stampede
Reply   •   1 楼
vash_the_stampede    6 年前
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 然后 z=9 d=4

然后重复这些小错误 p2

Aquarthur
Reply   •   2 楼
Aquarthur    6 年前

别忘了传过去 z d 在构造器中,例如:

p1 = point(1,2)

此外,在 display 函数,您尝试设置 self.x self.z self.y self.d . 自我Z 自我D 不存在(self意味着它应该是类属性,而不是类属性),您应该使用函数的输入参数:

self.x = z
self.y = d