2013-06-30 2 views
0

저는 Python에서 상대적인 초보자이며 잘 작성되지 않은 코드를 실행하려고합니다. 내 질문은, 어떻게 할 수있는 함수 또는 클래스 생성자의 가능한 인수 목록을 대화 형 셸을 사용하여 얻을 수 있습니다. 이상적으로, 나는 dir()과 같은 것을 가지고 싶지만 클래스 멤버가 아니라 함수의 가능한 인수의 이름을 나열해야한다.모든 함수 인수 이름 나열 (docu 없음)

가능하지 않은 경우 코드를 살펴 보지 않고 함수 인수를 유추 할 수있는 다른 방법이 있습니까?

+0

환경이 * nix 인 경우 bpython – thefourtheye

+0

을 사용하십시오. Python에서 함수는 [가변 인수] (http : // stackov erflow.com/questions/919680/python-can-a-variable-number-of-arguments-be-passed-to-function) 이렇게 유용하지 않을 수도 있습니다. –

+0

@thefourtheye [IPython] (http://www.Ipython.org) 아마 더 낫다. –

답변

1

당신은 inspect.getargspec 원하는 :

>>> import inspect 
>>> def foo(bar, baz): 
...  pass 
... 
>>> inspect.getargspec(foo) 
ArgSpec(args=['bar', 'baz'], varargs=None, keywords=None, defaults=None) 
+0

고마워요! 그게 내가 찾고 있던거야. – coffee

4

help(function_object)을 사용하면 주어진 함수에 대해 알고있는 모든 것을 파이썬 형식으로 나타낼 수 있습니다.

inspect.getargspec() function을 사용하여 허용 된 인수의 개요 튜플 개요를 얻을 수도 있습니다. 당신은뿐만 아니라 파이썬 함수로 그 형식을 inspect.formatargspec()에 그 함수의 결과를 전달할 수 있습니다 위의 예에서 함수의

>>> from inspect import getargspec, formatargspec 
>>> def demo(foo, bar, eggs='ham'): pass 
... 
>>> getargspec(demo) 
ArgSpec(args=['foo', 'bar', 'eggs'], varargs=None, keywords=None, defaults=('ham',)) 
>>> formatargspec(*getargspec(demo)) 
"(foo, bar, eggs='ham')" 

, help(demo) 인쇄 :

Help on function demo in module __main__: 

demo(foo, bar, eggs='ham')