标题:遇到关于 class的问题,就是如何return 一个class
只看楼主
wbw6261
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-11-22
 问题点数:0 回复次数:1 
遇到关于 class的问题,就是如何return 一个class
最近做作业,目的就是写一个方程 ,给了 (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

搜索更多相关主题的帖子: class return 方程 def Line 
2017-11-22 08:00
william2011
Rank: 1
来 自:金星
等 级:新手上路
帖 子:35
专家分:0
注 册:2018-1-23
得分:0 
给你做个示例吧,哈哈。以下程序可直接运行验证:
#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~~")
2018-02-03 00:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-482713-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.358545 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved