我想从pygame扩展一些类,比如Surface
和Rect
。我可以使用继承,但这不会影响pygame本身的调用,即返回Rect
s和Surface
s的所有方法
例如,语句screen = pygame.display.set_mode()
返回一个pygame.Surface
,并允许我通过screen
在屏幕上绘制东西。如果我创建一个类MySurface(pygame.Surface)
并执行类似于screen = MySurface()
的操作,我显然获得了新的功能,但是操作屏幕的能力就丧失了。你知道吗
有没有什么方法可以扩展此类类的功能并将其应用于外部调用,而不必修改任何外部文件?你知道吗
看起来pygame是一个C扩展模块,这意味着您扩展其类的能力将受到限制。一般来说,您只能扩展模块打算扩展的类。在pygame中,
Sprite
和相关的类被设计成可扩展的,但是Surface
和Rect
类似乎不是。您仍然可以扩展这些类,但正如您所指出的,这些扩展只在您自己的代码中有用。你知道吗您可以尝试封装要扩展的类。像这样:
您还应该考虑
Sprite
类是否真的是您想要扩展的。基于其他关于扩展或封装pygame.Surface
的问题,Sprite
类才是他们真正想要的。你知道吗相关问题 更多 >
编程相关推荐