2017-01-24 20 views
0

クラスを含むファイルの名前を取得できますか?変数exporterは以下のクラスです。クラスを含むファイルの名前を取得する方法は?

def main(exporter): 

    v = exporter 
    print v # <__main__.Vudu object at 0x106ea5210> 
      # The class is "Vudu" and the filename that contains that class 
      # is called vudu_exporter. How would I get "vudu_exporter" ? 

更新:クラス/関数/メソッド/モジュールの

script_name = os.path.basename(inspect.getfile(v.__class__)) 
+0

'vudo.vudu_exporter .__ file__'はその名前を含む必要があります。 – tdelaney

+0

どのクラスですか?あなたは私たちにどんな授業も見せていません。 – user2357112

答えて

1

コールinspect.getfile:以下のクラスを含むスクリプトの名前を取得するために動作します。動作することは保証されていませんが、オブジェクトのthe __file__ attributeをチェックするよりも信頼性が高くなります(たとえば、が動作し、AttributeErrorを生成する場合はPython 3.5の場合)。

インスタンスがある場合は、クラスに最初に変換せずには機能しません(例: inspect.getfile(type(instance))(Python 2では、古いスタイルのクラスではinstance.__class__の方が信頼性が高くなります)。インスタンスが定義された場所ではなく、クラスが定義されている場所のみを伝えることができます。

関連する問題