2
我正在写一些Python代码的访问,并有一个类如下Python中,我的对象声称没有一种方法
class GO:
##irrelevant code
def getCenter(self):
xList = []
yList = []
# Put all the x and y coordinates from every GE
# into separate lists
for ge in self.GEList:
for point in ge.pointList:
xList.append(point[0])
yList.append(point[1])
# Return the point whose x and y values are halfway between
# the left- and right-most points, and the top- and
# bottom-most points.
centerX = min(xList) + (max(xList) - min(xList))/2
centerY = min(yList) + (max(yList) - min(yList))/2
return (centerX, centerY)
###more irrelevant code
def scale(self, factor):
matrix = [[factor,0,0],[0,factor,0],[0,0,1]]
for ge in self.GEList:
fpt = []
(Cx, Cy) = ge.getCenter()
for pt in ge.pointList:
newpt = [pt[0]-C[0],pt[1]-C[0],1]###OR USE TRANSLATE
spt = matrixPointMultiply(matrix, newpt)
finalpt = [spt[0]+C[0],spt[1]+C[0],1]
fpt.append(finalpt)
ge.pointList=fpt
return
每当我运行它,它说:AttributeError: circle instance has no attribute 'getCenter'
。 如何让对象正确调用函数本身? 这是一个不好的问题,我正在学习,所以详细的建议会有帮助。
您可以省略'self.GEList',但它似乎很重要。 (在任何情况下,根据错误消息,所讨论的对象不是'GO'实例。) – delnan
你是怎么调用这个代码的? –
在另一个问题上,将GE分成x,y列表的更简单方法是使用zip。例如,如果'GE = [(2,3),(4,5),(6,7)]',那么在'[x,y] = zip(* GE)'后,我们有'x =(2 ,4,6)'和'y =(3,5,7)' –