python中的全局方法或函数

python中的全局方法或函数,python,Python,我正在用ipad上的pythonista制作一个Python小游戏。 我制作了一个向量类,包含坐标和几个要添加、获取长度、设置长度的函数。我有另一个叫做Game的类,其中有我的游戏变量和函数。我可以定义一个向量 self.pos=vector(200,200) 但是如果我想计算长度,我不能调用getlength函数,因为我的类不正确 示例(我去掉了大部分代码): 谢谢, 尼古拉斯 编辑:呼叫 sum=addvec(self.pos,self.pos2) 显然不起作用,因为self是一个游戏类

我正在用ipad上的
pythonista
制作一个Python小游戏。 我制作了一个向量类,包含坐标和几个要添加、获取长度、设置长度的函数。我有另一个叫做Game的类,其中有我的游戏变量和函数。我可以定义一个向量

self.pos=vector(200,200)
但是如果我想计算长度,我不能调用
getlength
函数,因为我的类不正确

示例(我去掉了大部分代码):

谢谢, 尼古拉斯

编辑:呼叫

sum=addvec(self.pos,self.pos2)

显然不起作用,因为self是一个游戏类。我该怎么做呢?

为什么对getLength函数使用两个参数?第二个是向量(我假设),因此最好使用:

def getLength(self):
    return sqrt(self.x**2+self.y**2)
然后打电话:

d = self.pos.getLength()
如果要将两个向量相加,可以执行以下操作:

def add(self,other_vector):
    return vector(self.x+other_vector.x,self.y+other_vector.y)
所以你可以打电话:

sum = self.pos.add(some_other_vector)

顺便说一句:类应该总是用CamelCase编写的。也许您应该阅读一些关于python中面向对象编程的内容:

为什么要对getLength函数使用两个参数?第二个是向量(我假设),因此最好使用:

def getLength(self):
    return sqrt(self.x**2+self.y**2)
然后打电话:

d = self.pos.getLength()
如果要将两个向量相加,可以执行以下操作:

def add(self,other_vector):
    return vector(self.x+other_vector.x,self.y+other_vector.y)
所以你可以打电话:

sum = self.pos.add(some_other_vector)

顺便说一句:类应该总是用CamelCase编写的。也许您应该阅读一些关于python中面向对象编程的知识:

self.pos.getlength
?您既不希望也不需要它是一个全局函数-它是一个有用的实例方法。请使用4个空格来设置缩进级别。UPD:那更好。当您尝试调用
getlength
方法时会发生什么情况?
\uuuu init
应该是
\uuuuu init
objet
应该是
object
self.pos.getlength
?您既不希望也不需要它是一个全局函数-它是一个有用的实例方法。请使用4个空格来设置缩进级别。UPD:那更好。当你尝试调用
getlength
方法时会发生什么?
\uuuu init
应该是
\uuuuu init
objet
应该是
object
谢谢,这很有效!抱歉,如果我不太擅长这一点……如果我想在vector类中用一个函数添加两个向量。”代码'def addvec(self,a,b):返回向量(a.x+b.x,a.y,b.y)调用和=addvec(self.pos,self.pos2)显然不起作用,因为self是一个游戏类。我该怎么做?谢谢,行得通!抱歉,如果我不太擅长这一点……如果我想在vector类中用一个函数添加两个向量。”代码'def addvec(self,a,b):返回向量(a.x+b.x,a.y,b.y)调用和=addvec(self.pos,self.pos2)显然不起作用,因为self是一个游戏类。我怎么做?