我有一个班级:
class mountain:
def __init__(self,pk_positions,chann_1,chann_2):
self.pk_positions = pk_positions
self.chann_1 = chann_1
self.chann_2 = chann_2
def chann_1_pk(self):
return(list(self.chann_1[i] for i in self.pk_positions))
def chann_2_pk(self):
return(list(self.chann_2[i] for i in self.pk_positions))
def vall_positions(self):
return(list(int((i+j)/2) for i,j in zip(self.pk_positions[:-1],self.pk_positions[1:])))
def vall_sum(self):
return(list(self.chann_1[i]+self.chann_2[i] for i in self.vall_positions()))
如果我在主脚本中打电话:
peaks = mountain(pk_positions,chann_1,chann_2)
pk1 = peaks.chann_1_pk() # ==> without error
pk2 = peaks.vall_positions() # ==> TypeError: 'list' object is not callable
pk3 = peaks.vall_sum() # == > TypeError: 'list' object is not callable
为什么pk1没有错误但是pk2和pk的错误呢? 我做了一些stackoverflow搜索,但我不认为问题是defs和列表的命名。谢谢。
答案 0 :(得分:0)
这会有用吗?
list(int((i[0]+i[1])/2) for i in zip(self.pk_positions[:-1],self.pk_positions[1:]))
你的拉链正在返回类似[(0,1),(1,2),(2,3),(3,4)]
的内容你的for循环是拉链的第一个元素(0,1) 而int正在添加列表的两个值。 (0 + 1)/ 2