4

これは初心者の質問かもしれませんが...

したがって、使用する必要のあるpycファイルがありますが、ドキュメントはありません。その中にあるクラスと関数、およびそれらが取る変数を見つける方法はありますか?コーディングする必要はありません。実行方法だけです。

ありがとう

4

4 に答える 4

9

ファイルをインポートできる限り、ファイルを検査できます。.pyまたは.pycのどちらからのものかは関係ありません。

>>> import getopt
>>> dir(getopt)
['GetoptError', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'do_longs', 'do_shorts', 'error', 'getopt', 'gnu_getopt', 'long_has_args', 'os', 'short_has_arg']
>>> type(getopt.getopt)
<type 'function'>
>>> inspect.getargspec(getopt.getopt)
ArgSpec(args=['args', 'shortopts', 'longopts'], varargs=None, keywords=None, defaults=([],))
>>> help(getopt.getopt)
Help on function getopt in module getopt:
...
于 2010-08-16T20:38:09.843 に答える
4

インポートパスに貼り付けて名前でインポートすると、次のように使用できます。dir

import foo
dir(foo)

`help'を使用することもできます

help(foo)

docstringを取得します。これらは両方とも、をfoo含むすべてのものに使用できます。バイトコードはリリースごとに変わるため、ご使用のバージョンのPythonでは機能する場合と機能しない場合があります。この場合、私が言える最善のことは、1つが機能するまでさまざまなバージョンを試すことです。


関数の引数を回復する必要がある場合は、最初にargcountを取得します

argcount = f.func_code.co_argcount

その場合、引数はの最初のargcount変数になります

f.func_code.co_varnames

これは、関数がそれらをどのように期待するかを教えてくれず、docstringがない場合にのみ本当に役立ちますが、実行することはできます。

于 2010-08-16T20:34:16.720 に答える
1

最も簡単な方法http://depython.com

于 2010-08-16T20:34:47.433 に答える
0

コード自体にdocstringがあり、docstringを削除する最適化で生成されていない場合は、モジュールをインポートして、次のことを確認できます。

foo.pycの場合

import foo
dir(foo)
help(foo)

コードが必要だと判断した場合は、decompyleがあります。

于 2010-08-16T20:35:15.223 に答える