2016-05-18 8 views
0

私は一般的なPython /コーディングの初心者ですが、この文書を読むのに問題があります。 https://docs.python.org/2/library/inspect.html#python用のinspectモジュール

inspectモジュールの使用方法を理解しようとしています。 このファイルはTestClassA.pyと呼ばれている:私は何をしようとしている

import inspect 

class TestClassA(object): 
    def __init__(self): 
     print "this is crazy!" 

    print inspect.isclass(TestClassA) 
    #result is True 

はそれにTestClassA、すべてを返すことです。

TypeError: <module '__main__' (built-in)> is a built-in class 

しかし、これはおかしいです:基本的な考え方は、私のコードをコピーすることであり、それはメッセージとして飛び出してきた

print inspect.getsource(TestClassA) 

結果があります。私が使用する場合:

print inspect.isclass(TestClassA) 

結果はTrueです。

私の究極の目標は、特定の種類のクラスをテキストにコピーすることです(メモ:複数のクラスが1つの.pyファイルの下にある可能性があります)。その特定の種類のクラスを別の.pyファイルに持ち込みます。

誰でもお手伝いできますか? inspect.getsourcefileinspect.getsourcelinesが上記の同じ簡単な例を使ってどのように動作するかの例を誰も設定できるのであれば、私は非常に感謝します。

+0

"クラスを文字列にコピーしたいとき" - クラスを文字列にコピーするとどういう意味ですか?クラスの代わりに文字列がある場合、それをクラスとして扱うために 'inspect 'と期待するのはなぜですか? – user2357112

+0

エラーが発生しますか?もしそうなら、完全なトレースバックを投稿できますか?ドキュメントによれば、 '引数はモジュール、クラス、メソッド、関数...'であるかもしれないので、うまくいくはずです。 – mgilson

+0

こんにちはuser2357112私はクラスをコピーし、結果としてクラス全体を返そうとしています。 – Rusher

答えて

0
import inspect 

class TestClassA: 
    def __init__(self): 
     print "Hello" 
print inspect.getsource(TestClassA) 

pycharmで私のためにWorkigあなたは対話モードでそれを使用しようとした場合、あなたが言及したこの

import os 
import inspect 
inspect.getsource(os) 

2つのメソッドを実行して同じことが唯一の型を返すん チェックhttps://docs.python.org/2/library/inspect.html#inspect.getsourcelines

異なっています