2011-08-13 8 views
2

私は__file__の使用が必要なスクリプトを持っていたので、IDLEはこれを設定しないことを学びました。スクリプトからIDLEの存在を検出できる方法はありますか?IDLEの存在の検出/ __file__が設定されていないかどうかを確認する方法

+1

'__file__'が設定されているかどうかだけ確認できませんでしたか? – jtbandes

+0

はい、私はIDLE自身にも興味がありました。 –

+0

AFAIK、あなたにこれを伝えるために通訳者が設定した特別な変数はありません。 PyWin、PyScripter、IDLEはすべて同じバージョン、著作権などを表示します。したがって、IDLEを識別する方法は、 '__file__'が設定されているかどうかをチェックすることです。 – agf

答えて

6
if '__file__' not in globals(): 
    # __file__ is not set 

あなたは__file__が設定されていない場合は、特別な何かをしたい場合。デフォルトを持つようにしたい場合は、あなたが何かをしたい場合は

try: 
    __file__ 
except NameError: 
    # __file__ is not set 
    raise 

その後、とにかくエラーを発生させ、または

global __file__ 
__file__ = globals().get('__file__', 'your_default_here') 

+2

+1ですが、代わりに '__file__ 'がglobals()にないのはどうですか? – orip

+0

ええ、それは良い、ありがとう。 – agf

+0

このバグはIDLEで修正されました。 http://bugs.python.org/issue8515を参照してください。 – Roger

関連する問題