Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class Python中的面向对象编程和类_Class_Oop_Python 2.7 - Fatal编程技术网

Class Python中的面向对象编程和类

Class Python中的面向对象编程和类,class,oop,python-2.7,Class,Oop,Python 2.7,以下是给我的指示: 创建一个点类,该点类由表示点在x轴和y轴上的位置的有序对x、y组成。构造函数允许传入x和y值,并且应将缺少的值默认为0。您必须重写str方法以将点打印为正常值,即2、5 另外,创建一个由一对点对象p和q组成的线类。行可以通过以下两种方式之一进行实例化 somePoint = Point(2, 3) anotherPoint = Point(4, 8) someLine = Line(somePoint, anotherPoint) 或者 在第二种情况下,构造函数应将两

以下是给我的指示:

创建一个点类,该点类由表示点在x轴和y轴上的位置的有序对x、y组成。构造函数允许传入x和y值,并且应将缺少的值默认为0。您必须重写str方法以将点打印为正常值,即2、5

另外,创建一个由一对点对象p和q组成的线类。行可以通过以下两种方式之一进行实例化

somePoint = Point(2, 3)   
anotherPoint = Point(4, 8)
someLine = Line(somePoint, anotherPoint)
或者

在第二种情况下,构造函数应将两个点初始化为原点0,0。您必须重写_ustr_uuu方法以按如下方式打印行:2、5-4、7。类还必须提供返回 段的长度

这是模块文件 到目前为止我的代码 有几件事:

一,。距离函数有一个错误。前四行应该是:

self.x1 = self.coor[0].xy[0]
self.x2 = self.coor[1].xy[0]
self.y1 = self.coor[0].xy[1]
self.y2 = self.coor[1].xy[1]
二,。distance函数不返回任何内容,因此主文件中的distance变量的值为None。将return语句添加到函数中

三,。您应该修复行的字符串表示形式


四,。要求规定点和线的参数应为可选参数。通过为其提供默认值使其成为可选的。

如果点类必须在默认坐标0中初始化,则构造函数必须:

class Point():

def __init__(self, x=0, y=0):
    self.xy = [x, y]
    self.printer = ("(" + str(x) + "," + str(y) + ")")
# ...
之后,Line类的构造函数必须在构造函数中获得两个点实例,默认情况下,与前面的类定义类似,您必须具有

class Line():
    def __init__(self, p=Point(), q=Point()):
        self.x1 = p.xy[0]
        self.y1 = p.xy[1]
        self.x2 = q.xy[0]
        self.y2 = q.xy[1]

    def distance(self):
        return math.sqrt((self.x1-self.x2)**2 + (self.y1 - self.y2)**2)
str override方法的定义不正确。如果你想要像你的问题一样的东西,使用

    def __str__(self):
        return str('(' + str(self.x1) + ', ' + str(self.x2) + ')--(' + str(self.x2) + ', ' + str(self.y2) + ')')
class Point():

def __init__(self, x=0, y=0):
    self.xy = [x, y]
    self.printer = ("(" + str(x) + "," + str(y) + ")")
# ...
class Line():
    def __init__(self, p=Point(), q=Point()):
        self.x1 = p.xy[0]
        self.y1 = p.xy[1]
        self.x2 = q.xy[0]
        self.y2 = q.xy[1]

    def distance(self):
        return math.sqrt((self.x1-self.x2)**2 + (self.y1 - self.y2)**2)
    def __str__(self):
        return str('(' + str(self.x1) + ', ' + str(self.x2) + ')--(' + str(self.x2) + ', ' + str(self.y2) + ')')