长的代码不麻烦各位大佬看,我说一下我的问题。
首先我的类是这样的
在这个类中,定义了属性distance,13行就是一个计算距离的式子,我试过,这个dis变量就是一个数。
在计算的过程中,我有一个步骤是:
s=s+li[p].classid/li[p].distance(t[i])
分子中的classid是一个数,问题来了,如果按上图给dis以self.dis赋值的时候,这个算式中的分母不能计算,显示如下错误,应该是分母不是数值类型:
但是我把第一张图中最后属性下面加上一句return dis,这时候就可以计算上面那个式子了。
如果我不加return dis,下面的式子究竟要怎么操作才能引用这个类-属性下计算出的dis呢。
所以我想问的主要是如果这个属性(就是我这里面的distance下面)有多个值dis1、dis2、dis3的时候,外面的计算如何单独调用这三个dis值?
大佬帮帮忙谢谢,本人萌新刚接触python
试试把你的类这么改一下(在init函数最后一行加self.dis = 0):
class Point:
def __init__ (self,coor,classid):
seLf.coor = coor
self.classid=classid
self.dis = 0
def distance(self ,ori):
dis = math.sqrt((self.coor[0]-ori[0])**2 + (self.coor[1] - ori[1])**2)
self.dis=dis
类的成员变量需要在类的构造函数内以self.开头来定义的。