注册 登录
编程论坛 Python论坛

遇到关于 class的问题,就是如何return 一个class

wbw6261 发布于 2017-11-22 08:00, 1724 次点击
最近做作业,目的就是写一个方程 ,给了 (x1,y1) (x2,y2)最后产生一个直线的class,y=ax+b
class的第一项是a,第二项b

然后写一个方程
def a(x1,y1,x2,y2):

问题是这样的让我很头疼因为教科书上也没写
最后的结果需要这么写,Line.points_to_line(-7,6,9,6) 产生Line(0,6))
我不知道Line后面(Line.)是需要写个什么样的东西才能 return出一个Line


Class Line:
     
     def __init__(self,slope,intercept):
        self.slope = slope
        self.intercept = intercept

1 回复
#2
william20112018-02-03 00:51
给你做个示例吧,哈哈。以下程序可直接运行验证:
#coding:utf-8
class Line:
    def __init__(self):
        self.a = 0  #类属性,a作为直线斜率
        self.b = 0  #类属性,b作为直线截距   

    def ponits_to_line(self,x1,y1,x2,y2):
        #初中几何原理:两点(x1,y1) (x2,y2),可以确定一条直线
        self.a = (y2-y1)/(x2-x1)  #计算出直线斜率a
        self.b = y1 - self.a*x1   #计算出直线截距b
        return self.a, self.b
        
if __name__ =="__main__":
    Line = Line()
    a,b =Line.ponits_to_line(-7,6,9,6)   # 根据已知条件两个点坐标-7,6,9,6,由直线公式 y = ax + b,获得直线斜率a 和 直线截距b
    print("Got two points: (-7,6) and (9,6)")
    print("now the line is:   Line(" + str(a) + "," + str(b) + ")" )  #打印出计算后的直线公式结果
    print("Good Luck! haha~~")
1