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
Noob student 25 Сен 2018 в 21:43

2 ответа

Лучший ответ

Не забудьте передать в 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
3
Aquarthur 25 Сен 2018 в 18:54
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
vash_the_stampede 25 Сен 2018 в 18:59