파이썬의 다른 함수에서 특정 함수의 인수의 기본값을 찾는 방법은 무엇입니까?
def myFunction(arg1='a default value'):
pass
우리는 introspection을 사용하여 myFunction()
가 사용하는 인수의 이름을 알아낼 수 있지만 arg1
의 기본값을 찾는 방법 ('a default value'
는 위의 예)?
파이썬의 다른 함수에서 특정 함수의 인수의 기본값을 찾는 방법은 무엇입니까?
def myFunction(arg1='a default value'):
pass
우리는 introspection을 사용하여 myFunction()
가 사용하는 인수의 이름을 알아낼 수 있지만 arg1
의 기본값을 찾는 방법 ('a default value'
는 위의 예)?
로 함수의 속성에 뿌리를 내리는 것 대신 inspect 모듈을 약간 더 친숙하게 사용할 수 있습니다. 인터페이스 :
ArgSpec(args=['arg1'], varargs=None, keywords=None, defaults=('a default value',))
변수 이름과 기본값 (있는 경우)을 얻었으므로 훨씬 좋습니다. –
나쁨. 물론 myFunction.func_defaults
이 있습니다. 이 같은 기능 f
를 정의하는 경우
:
이>>> def f(a=1, b=True, c="foo"):
... pass
...
파이썬 2에서 사용할 수 있습니다
>>> f.func_defaults
(1, True, 'foo')
>>> help(f)
Help on function f in module __main__:
f(a=1, b=True, c='foo')
을 반면 파이썬 3에서, 그것의 :
>>> f.__defaults__
(1, True, 'foo')
>>> help(f)
Help on function f in module __main__:
f(a=1, b=True, c='foo')
Duncan의 답변을 확인하십시오.이 답변은 이보다 훨씬 낫습니다. –
내가 대신 위키 만들 수 :
다음 사양은
args
및defaults
같은 속성을 가진ArgSpec
목적은 무엇입니까? 나는 그것을하는 방법을 찾을 수 없습니다. 나는 질문을 한 직후 대답을 발견 했으므로, 나 자신의 질문에 답한 이후에 위키로 만들면 더 좋다. – Srikanth@ Josh : 감사합니다. 던컨 (Duncan)의 답변이 훨씬 좋았습니다. 대신 대답 하나를 표시했습니다. – Srikanth