Greetings! 私は単純なスネークゲームを作っています。私はクラスe.iを別のモジュールで展開したい。私のメインゲームループとは別のスクリプトでメニュークラスを持っています。言い換えれば、インポートしたスクリプトが、メインスクリプトで先に呼び出されたpygame initを取得するようにしたいのです。ここでインポートしたスクリプトからPygameモジュールを使用する
は私の問題の擬似コードを使用して簡単な例です:main.pyで
one.py
def version():
print pygame.version
私はpygameのを輸入していると()pygame.initんでした。ここから、私もデフバージョンを(使用したい)
one.py main.py
import pygame
import one
pygame.init()
one.version()
からしかし、それは私なしpygameの定義されたエラーが発生します。私はそれが私にエラーを与える理由を知っているなぜなら、one.pyがmain.py内から呼び出されたとき、それはmain.pyからの宣言を保持しないからです。
私が知りたいのは、上記のことを実践する方法です。
ありがとうございました!
私はそれを考えました。それは効率的ですか?私がその道を行くなら、私は必要に応じて各モジュールにPygameをインポートしなければならないでしょう。もし呼び出されたときにPygameをインポートする関数を持った別のモジュールを作成したのでしょうか? – user577317
@ user577317:はい、効率的です。別のモジュールを作成するのは意味がありません。その代わりにインポートする必要があるからです。 –
@ user577317:発信者の名前空間を操作することはできません(おそらく可能ですが、信頼性の低いハッキングであり、かなりの労力を要しますし、まずは悪い考えです)。 **ちょうどそれらをインポートする**、神のために。この質問は、理解していない最適化が無意味で有害である理由のもう一つの例です)すでにインポートされているモジュールをインポートする(現在実行されているインタプリタプロセスでは、通常は1つのプログラムしか持たない)既にインポートされたモジュール私。非効率ではありません。 – delnan