私はPythonでゲームを作っています。スクリーンに何かを描画するには、表示面であるpygameのオブジェクトが必要です。このオブジェクトは、すべてのクラスで別々のファイルで参照される必要があります。今、すべてのクラスのすべて__init__()
メソッドは、サーフェスオブジェクトを手動でパラメータに追加する必要があります。それは面倒になり、コードが厄介になります。クラス間で特定のオブジェクトを別々のファイルで共有する方がいいですか?変数をクラス__init__メソッドに自動的に渡す方法は?
0
A
答えて
0
これを行う簡単な方法の1つは、クラス属性を使用し、それを設定するクラスメソッドを提供することです。
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
これを行うにはいくつかの方法がありますが、最も一般的なのはおそらくグローバルオブジェクトです。しかし、おそらくそれを処理する最良の方法は、表示面(およびプロジェクト内で広く使用されているもの)をインポートするモジュールに入れることです。新しいフォルダ 'Screen'にファイル__init__.pyを作成します。 __init__.pyで
は、次のように置く:
screen = screenObject()
その後、あなたはあなただけのことができ、画面のオブジェクト必要なすべてのファイルに:あなたがそれを必要な場所
from Screen import screen
それからちょうどあなたのオブジェクトとして画面を使用します。 Pythonのモジュールは、初めて読み込まれたときや他の方法で共有されたときに実行されるため、この画面オブジェクトはどこでも同じものになります。
関連する問題
- 1. 第三者のトラッキングピクセルに変数を動的に渡す方法
- 2. 関数に引数を動的に渡す方法は?
- 3. 動的変数をASP.NET MVCのアクションフィルタに渡す方法
- 4. 動的変数を安全なロールに渡す方法
- 5. Springバッチで動的変数をXMLに渡す方法
- 6. 自由に変更ファイルを自動的にリロードする方法
- 7. gui変数をクラスに効率的に渡す方法は?
- 8. セッター変数は自動的に
- 9. すべてのnodejsビューに動的変数を渡す方法は?
- 10. JTreeオブジェクトのサイズを自動的に変更する方法は?
- 11. Response.RedirectPermanentはクエリ文字列変数を自動的に渡しますか?
- 12. 自動スケーリングのインスタンス名を動的に変更する方法
- 13. ミドルウェアを使用して変数を自動的にビューに渡す
- 14. 静的変数をLaravelルートに渡す方法は?
- 15. データベースの行数を自動的に制限する方法は?
- 16. カスタムjavascriptファイルを自動的にミニバージョンに変換する方法
- 17. 複数のオブジェクトインスタンスを別のクラスに動的に渡す方法。
- 18. queryselectorAllに変数を渡す方法は?
- 19. 変数を.post()に渡す方法は?
- 20. リクエストボディに変数を渡す方法は?
- 21. グラフタイプを動的に渡す方法
- 22. UITableView/UIScrollView ContentSizeの変更を自動的に知る方法は?
- 23. メソッド内の変数を自動的に受け取る方法は?
- 24. アセットマネージャを使用して動的変数をスクリプトに渡す方法
- 25. divに自動的にカーソルを移動する方法は?
- 26. SharedPreferences変数を自動的に更新するには?
- 27. Java渡し環境変数が自動的に特殊文字をエスケープする
- 28. AJAX JavaScript関数にPHP変数を動的に渡す
- 29. 動的SQLのwhere句に文字列変数を渡す方法
- 30. WebStartプログラムのJavaキャッシュフォルダを自動的に変更する方法
サンプルコードを提供できますか? – blacksite
"明示的に暗黙的に優れています"( 'import this'による)。 – martineau