Python 2.7 将对象传递给 class 函数
Python 2.7 passing an object to a class function
我正在尝试在 python 中测试我的 2D 坐标和矢量 classes。这是定义向量和坐标 classes 的代码:
class coord(object):
def __init__(self,x,y):
self.x = x
self.y = y
def resolve(endCoord):
return vector((self.x-endCoord.x),(self.y-endCoord.y))
class vector(object):
def __init__(self, xTrans, yTrans):
self.xTrans = xTrans
self.yTrans = yTrans
self.magnitude = sqrt((self.xTrans**2)+(self.yTrans**2))
然后我用下面的语句测试这些:
inp1 = raw_input("Please enter the first coordinate: ")
inp2 = raw_input("Please enter the second coordinate: ")
coord1 = coord(int(inp1[0]), int(inp1[2]))
coord2 = coord(int(inp2[0]), int(inp2[2]))
vector1 = coord1.resolve(coord2)
print "Vector magnitude is "+str(vector1.magnitude)
线路有问题:
vector1 = coord1.resolve(coord2)
它抛出这个错误的地方:
exceptions.TypeError: resolve() takes exactly 1 argument (2 given)
我不知道如何修复它。我给的 inp1 是“0,0”(没有引号),对于 inp2,我给的是“5,5”(同样没有引号)
我认为当函数在坐标内时,将对象作为函数参数或者我将坐标作为函数参数可能是个问题 class?
我不太清楚,如有任何帮助,我们将不胜感激!
resolve
的第一个参数应该是 self
。
class coord(object):
...
def resolve(self, endCoord):
return vector((self.x-endCoord.x),(self.y-endCoord.y))
所有方法(类似于函数,但在 类 中)接受第一个参数作为 self
,如您的 __init__()
方法所示。
def resolve(endCoord):
应该是
def resolve(self, endCoord):
我正在尝试在 python 中测试我的 2D 坐标和矢量 classes。这是定义向量和坐标 classes 的代码:
class coord(object):
def __init__(self,x,y):
self.x = x
self.y = y
def resolve(endCoord):
return vector((self.x-endCoord.x),(self.y-endCoord.y))
class vector(object):
def __init__(self, xTrans, yTrans):
self.xTrans = xTrans
self.yTrans = yTrans
self.magnitude = sqrt((self.xTrans**2)+(self.yTrans**2))
然后我用下面的语句测试这些:
inp1 = raw_input("Please enter the first coordinate: ")
inp2 = raw_input("Please enter the second coordinate: ")
coord1 = coord(int(inp1[0]), int(inp1[2]))
coord2 = coord(int(inp2[0]), int(inp2[2]))
vector1 = coord1.resolve(coord2)
print "Vector magnitude is "+str(vector1.magnitude)
线路有问题:
vector1 = coord1.resolve(coord2)
它抛出这个错误的地方:
exceptions.TypeError: resolve() takes exactly 1 argument (2 given)
我不知道如何修复它。我给的 inp1 是“0,0”(没有引号),对于 inp2,我给的是“5,5”(同样没有引号)
我认为当函数在坐标内时,将对象作为函数参数或者我将坐标作为函数参数可能是个问题 class?
我不太清楚,如有任何帮助,我们将不胜感激!
resolve
的第一个参数应该是 self
。
class coord(object):
...
def resolve(self, endCoord):
return vector((self.x-endCoord.x),(self.y-endCoord.y))
所有方法(类似于函数,但在 类 中)接受第一个参数作为 self
,如您的 __init__()
方法所示。
def resolve(endCoord):
应该是
def resolve(self, endCoord):