Tôi đang phát triển một mô-đun vẽ đường thẳng và tìm điểm giữa. Với mục đích thử nghiệm, tôi muốn tạo một số đầu ra chuỗi từ một lớp liên quan.
Dòng lớp:
def __init__(tự, điểm cuối):
self.start = điểm cuối[0]
self.end = điểm cuối[1]
điểm giữa chắc chắn():
x = (start.getX + end.getX) / 2.0
y = (start.getY + end.getY) / 2.0
Điểm trả về(x, y)
chắc chắn __str__(tự):
trả về "dòng từ " + `self.start` + " về " + `self.end` + "."
điểm lớp:
def __init__(self, x, y):
tự.x = x
tự.y = y
chắc chắn getX():
trả lại x
chắc chắn getY():
return y
chắc chắn __str__(tự):
trả về "[" + str(self.x) + ", " + str(self.y) + "]"
__repr__ = __str__
điểm1 = Điểm(4,5)
điểm2 = Điểm(0,0)
line1 = Line([point1, point2])
in dòng 1
in dòng1.điểm giữa
Sản lượng dự kiến:
dòng từ [4, 5] đến [0, 0]
[2.0, 2.5]
Thay vào đó tôi nhận được:
dòng từ [4, 5] đến [0, 0]
>
Làm cách nào để có được chuỗi biểu diễn dự kiến của điểm giữa, được trả về dưới dạng một thể hiện của lớp Point?
Những gì bạn in ra chính là phương thức đó, không phải giá trị trả về của phương thức đó. Thay đổi dòng cuối cùng của bạn thành:
in dòng1.midpoint()
Ngoài ra, định nghĩa dòng đầu tiên của phương thức của bạn nên sử dụng self làm tham số duy nhất, như sau:
điểm giữa def (tự):
Điều tương tự cũng áp dụng cho các phương thức còn lại, lấy self làm tham số (Point.getX và Point.getY).
Tôi là một lập trình viên xuất sắc, rất giỏi!