gpt4 book ai didi

python - python 中的全局方法或函数

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:03 25 4
gpt4 key购买 nike

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

self.pos=vector(200,200)

但是如果我想算出长度,我不能调用 getlength 函数,因为我不在正确的类中。

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

class vector(objet):
def __init(self,x,y):
self.x=x
self.y=y

def getlength(self):
return sqrt(self.x**2+self.y**2)

def addvec(self,a,b):
return vector(a.x+b.x,a.y,b.y)


class Game(object):
def __init__(self):
self.pos=vector(200,200)
self.pos=vector(200,200)

def loop(self):
## here i want something like d= length of self.pos !!

class MyScene(Scene):
def setup(self):
self.game=Game()

def draw(self):
self.game.loop()

run(MyScene())

谢谢,尼古拉斯

编辑:通话

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

显然是行不通的,因为 self 是一个 Game 类。我该怎么做?

最佳答案

为什么要为 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 中面向对象编程的内容:http://code.tutsplus.com/articles/python-from-scratch-object-oriented-programming--net-21476

关于python - python 中的全局方法或函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23835099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com