fan1993423 发表于 2018-3-4 00:14:59

求直线长度

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 为什么会有这个错误,求解释

2012277033 发表于 2018-3-4 08:21:36

函数名和变量名冲突了
改一下就好.

import math
class point():
    def __init__(self,x,y):
      self.x=x
      self.y=y
      
    def get_x(self):
      return self.x
    def get_y(self):
      return self.y
class line():
    def __init__(self,a,b):
      self.m=a.get_x()-b.get_x()
      self.n=a.get_y()-b.get_y()
      self.len=math.sqrt(self.m*self.m+self.n*self.n)
    def getlen(self):
      return self.len
页: [1]
查看完整版本: 求直线长度