gpt4 book ai didi

python - 如何追加到自定义 python 序列?

转载 作者:行者123 更新时间:2023-12-01 05:21:05 25 4
gpt4 key购买 nike

我正在使用 Python 和 Pygame 开发一个引擎,并且我已经实现了一个名为“Animation”的自定义序列类,其中每个索引都是一个帧(在这种情况下,我的另一个对象是“grict/grid- element”,它拥有自己的 Pygame.Surface 对象)。这是我关于“重载部分”的重载实现:

class Animation(Sequence):

"""
A Python animation object is a sequence of Pygame surfaces, where each surface represents a frame.
"""

LOOP_FORWARDS = True
LOOP_BACKWARDS = False

def __init__(self, grid, *frames):

self.grid = grid
self.frame = 0
self.step = 1
self.direction = Animation.LOOP_FORWARDS
self.frames = frames

def __getitem__(self, frame):

return self.frames[frame]

def __len__(self):

return len(self.frames)

如果我创建动画类的实例,我可以使用方括号[]访问每个帧,这很漂亮。碰巧我想实现一个“addItem”方法,或者对实例使用“.append”,但我不知道该怎么做。

def addFrame(self, frame):

"""
Appends a new frame to the animation's inner frame-collection.
"""

self.frames.__append__(frame) # There's no such thing, and, if there was, I suppose I could access the .append() method directly from the instance.

最佳答案

当您使用*frames形式时,它将是一个元组。您可以通过以下方式确认:

print type(frames)

所以,您可能想将其转换为这样的列表

self.frames = list(frames)

然后使用这样的list.append函数

self.frames.append(frame)

关于python - 如何追加到自定义 python 序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22367216/

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