我怎样才能从 class 点调用一个对象,以便我可以在矩形中使用它
How could i call a object from the class point so that i can use it in rectangle
我想从 class 点调用 x 和 y 点并在 class 矩形中实现它,这样我就可以输入 x,y,w,h 并且它会打印出来具有一定高度和宽度的点(x,y)并打印一个区域。
它应该产生的一个例子是
在 (3,2) 处的矩形,高度 = 2 宽度 = 1,面积 = 2
但是,我一直在第 22 行收到此错误:
__str__
result += str(self._X)+ ',' + str(self._Y) + ')'
AttributeError: 'rectangle' object has no attribute '_X'
这是我的当前代码:
import math
import sys
import stdio
class Point(object):
def __init__(self, x, y):
self._X = x
self._Y = y
class rectangle:
def __init__(self,x,y, w, h):
self._h = h
self._w = w
def area(self):
a = self._h * self._w
return a
def __str__(self):
result = 'Rectangle at('
result += str(self._X)+ ',' + str(self._Y) + ')'
result += ' with height = ' + str(self._h)
result += ' width = ' + str(self._w)
result += ' , area = ' + str(self.area())
return result
def main():
x = int(input(sys.argv[0]))
y = int(input(sys.argv[0]))
w = int(input(sys.argv[0]))
h = int(input(sys.argv[0]))
rect = rectangle(x,y,w,h)
stdio.writeln(rect)
if __name__ == '__main__':
main()
矩形只有属性 _h 和 _w。 Self 指的是矩形对象。您需要添加缺少的属性 _x 和 _y 或使用点继承。
我想你是想在矩形中创建一个点:
class rectangle:
def __init__(self,x,y, w, h):
self.point = Point(x, y)
self._h = h
self._w = w
def area(self):
a = self._h * self._w
return a
def __str__(self):
result = 'Rectangle at('
result += str(self.point._X)+ ',' + str(self.point._Y) + ')'
result += ' with height = ' + str(self._h)
result += ' width = ' + str(self._w)
result += ' , area = ' + str(self.area())
return result
Rectangleclass可以继承Point,也可以在Rectangle中初始化init
class rectangle(Point):
def __init__(self,x,y, w, h):
super().__init__(x,y)
self._h = h
self._w = w
def area(self):
a = self._h * self._w
return a
def __str__(self):
result = 'Rectangle at('
result += str(self._X)+ ',' + str(self._Y) + ')'
result += ' with height = ' + str(self._h)
result += ' width = ' + str(self._w)
result += ' , area = ' + str(self.area())
return result
但我认为最好使用第一个答案中指定的组合
我想从 class 点调用 x 和 y 点并在 class 矩形中实现它,这样我就可以输入 x,y,w,h 并且它会打印出来具有一定高度和宽度的点(x,y)并打印一个区域。
它应该产生的一个例子是
在 (3,2) 处的矩形,高度 = 2 宽度 = 1,面积 = 2
但是,我一直在第 22 行收到此错误:
__str__
result += str(self._X)+ ',' + str(self._Y) + ')'
AttributeError: 'rectangle' object has no attribute '_X'
这是我的当前代码:
import math
import sys
import stdio
class Point(object):
def __init__(self, x, y):
self._X = x
self._Y = y
class rectangle:
def __init__(self,x,y, w, h):
self._h = h
self._w = w
def area(self):
a = self._h * self._w
return a
def __str__(self):
result = 'Rectangle at('
result += str(self._X)+ ',' + str(self._Y) + ')'
result += ' with height = ' + str(self._h)
result += ' width = ' + str(self._w)
result += ' , area = ' + str(self.area())
return result
def main():
x = int(input(sys.argv[0]))
y = int(input(sys.argv[0]))
w = int(input(sys.argv[0]))
h = int(input(sys.argv[0]))
rect = rectangle(x,y,w,h)
stdio.writeln(rect)
if __name__ == '__main__':
main()
矩形只有属性 _h 和 _w。 Self 指的是矩形对象。您需要添加缺少的属性 _x 和 _y 或使用点继承。
我想你是想在矩形中创建一个点:
class rectangle:
def __init__(self,x,y, w, h):
self.point = Point(x, y)
self._h = h
self._w = w
def area(self):
a = self._h * self._w
return a
def __str__(self):
result = 'Rectangle at('
result += str(self.point._X)+ ',' + str(self.point._Y) + ')'
result += ' with height = ' + str(self._h)
result += ' width = ' + str(self._w)
result += ' , area = ' + str(self.area())
return result
Rectangleclass可以继承Point,也可以在Rectangle中初始化init
class rectangle(Point):
def __init__(self,x,y, w, h):
super().__init__(x,y)
self._h = h
self._w = w
def area(self):
a = self._h * self._w
return a
def __str__(self):
result = 'Rectangle at('
result += str(self._X)+ ',' + str(self._Y) + ')'
result += ' with height = ' + str(self._h)
result += ' width = ' + str(self._w)
result += ' , area = ' + str(self.area())
return result
但我认为最好使用第一个答案中指定的组合