Программа на Python не работает .. Основная часть продолжает показывать ошибку - PullRequest
0 голосов
/ 25 сентября 2018
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 голосов
/ 25 сентября 2018
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

0 голосов
/ 25 сентября 2018

Не забудьте передать z и d в конструкторе, например:

p1 = point(1,2)

Кроме того, в функции display вы пытаетесь установить self.x в self.z и self.y до self.d.self.z и self.d не существует (self означает, что это должен быть атрибут класса, а это не так), вместо этого вы должны использовать входные параметры функции:

self.x = z
self.y = d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...