鱼C论坛

 找回密码
 立即注册
查看: 2938|回复: 1

求直线长度

[复制链接]
发表于 2018-3-4 00:14:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import math
class point():
    def __init__(self,x,y):
        self.x=x
        self.y=y
        
    def x(self):
        return self.x
    def y(self):
        return self.y
class line():
    def __init__(self,a,b):
        self.m=a.x()-b.x()
        self.n=a.y()-b.y()
        self.len=math.sqrt(self.m*self.m+self.n*self.n)
    def getlen(self):
        return self.len
>>> a=point(4,8)
>>> b=point(9,20)
>>> k=line(a,b)
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    k=line(a,b)
  File "C:/Users/Administrator/Desktop/k/给出两个坐标点,求这两个点的长度.py", line 13, in __init__
    self.m=a.x()-b.x()
TypeError: 'int' object is not callable 为什么会有这个错误,求解释
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-4 08:21:36 | 显示全部楼层
函数名和变量名冲突了
改一下就好.

  1. import math
  2. class point():
  3.     def __init__(self,x,y):
  4.         self.x=x
  5.         self.y=y
  6.         
  7.     def get_x(self):
  8.         return self.x
  9.     def get_y(self):
  10.         return self.y
  11. class line():
  12.     def __init__(self,a,b):
  13.         self.m=a.get_x()-b.get_x()
  14.         self.n=a.get_y()-b.get_y()
  15.         self.len=math.sqrt(self.m*self.m+self.n*self.n)
  16.     def getlen(self):
  17.         return self.len
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 11:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表