我正在python中制作一个游戏,并且pygame中的一个对象需要在屏幕上绘制任何东西。这个对象需要在我的所有类中的单独文件中引用。现在,所有类的每个__init__()
方法都要求将表面对象手动添加到参数中。它变得乏味,使代码变得混乱,有没有更好的方式来在不同文件中的类之间共享一个特定的对象?如何自动将变量传递给类__init__方法?
0
A
回答
0
一个简单的方法就是使用class属性并提供一个类方法来设置它。
class Class:
surface = None
@classmethod
def set_surface(cls, surface):
cls.surface = surface
def __init__(self, arg1, arg2, arg3):
print('surface: {}'.format(self.surface))
c1 = Class(1, 2, 3) # -> surface: None
Class.set_surface(42)
c2 = Class(1, 2, 3) # -> surface: 42
0
有几种方法可以做到这一点,最天真的可能是一个全球性的对象。尽管如此,处理它的最好方法还是通过在您导入的模块中放置显示界面(以及在项目中广泛使用的其他任何东西)。用一个文件__init__.py制作一个新的文件夹'Screen'。
在__init__.py把下面:
screen = screenObject()
然后在任何文件,你需要的画面对象你可以:
from Screen import screen
然后只需使用屏幕作为对象,无论你需要它。 python中的模块在第一次加载和共享时运行,所以无论你在哪里使用它,这个屏幕对象都是相同的。
相关问题
- 1. django:如何将变量传递给类?
- 2. 将此变量传递给此类变量的方法
- 3. 将对象方法传递给变量
- 4. 将变量传递给方法(Java)
- 5. 将变量传递给javascript方法
- 6. 将变量传递给方法
- 7. 将自变量传递给自定义save()方法
- 8. 如何将变量传递给Angular UI Bootstrap Datepicker自定义类
- 9. Python 3:将文件名变量从Gtk.FileChooser传递给__init__函数
- 10. C# - 将变量类型传递给泛型方法
- 11. 将gui变量传递给类的有效方法?
- 12. 将变量类型传递给未枚举的方法
- 13. 如何将变量传递给JQuery定义/方法?
- 14. 如何将方法名称的变量传递给@selector()?
- 15. 如何将变量传递给QT中的插槽方法?
- 16. 如何将变量传递给按钮事件方法?
- 17. 如何将变量传递给JavaScript的C#方法
- 18. 如何将参数作为局部变量传递给方法
- 19. 将变量传递给另一个类
- 20. 将变量传递给另一个类?
- 21. 将变量传递给另一个类
- 22. 将变量传递给外部类
- 23. WordPress - 将get_option值传递给类变量
- 24. 如何将变量传递给模块?
- 25. 如何将变量传递给Buildbot?
- 26. 如何将env变量传递给GNOME
- 27. 如何将JQuery变量传递给Razor?
- 28. 如何将变量传递给XPathExpression
- 29. 如何将Bash变量传递给Python?
- 30. 如何将Python变量传递给Bash?
你能提供一些示例代码吗? – blacksite
“显式优于隐式”(根据'import this')。 – martineau