如何将一些代码Python2转换为Python3.x?

时间:2017-08-09 13:26:01

标签: python python-3.x python-2.x code-conversion

我在游戏中使用动画,但我发现了错误..你可以帮帮我吗?)

或者我是否需要添加所有代码?

class Animation:
    def __init__(self, x, y, sprites=None, time=100):
        self.x = x
        self.y = y
        self.sprites = sprites
        self.time = time
        self.work_time = 0
        self.skip_frame = 0
        self.frame = 0

    def update(self, dt):
        self.work_time += dt
        self.skip_frame = self.work_time // self.time
        if self.skip_frame > 0:
            self.work_time = self.work_time % self.time
            self.frame += self.skip_frame
            if self.frame >= len(self.sprites):
                self.frame = 0

    def get_sprite(self):
        return self.sprites[self.frame]

Traceback (most recent call last):
  File "C:\Users\Zyzz\Desktop\game\bin.py", line 210, in <module>
    target.update(dt)
  File "C:\Users\Zyzz\Desktop\game\bin.py", line 98, in update
    self.skip_frame = self.work_time // self.time
TypeError: unsupported operand type(s) for //: 'int' and 'module'

1 个答案:

答案 0 :(得分:2)

我在代码中看到的内容与python2 / python3中的代码无关。

这里self.time = time,时间似乎是导入的模块 您正在尝试self.skip_frame = self.work_time // self.time self.work_time中早期def __init__(...)初始化为python-tools 它试图在int(0)和模块(时间)之间进行操作,这是不可接受的。

但是根据您的问题标题,如果您希望您的代码从python2.x迁移到python3.x兼容,那么可以使用一个包[{3}}
您可以使用$ 2to3 example.py $ 2to3 -w example.py # -w for write the changes back to file

安装2to3
{{1}}