반응형
python 함수 내부의 매개 변수 이름 목록을 가져오는 중
중복 가능성:
python에서 메서드 매개 변수 이름을 가져오는 중
python 함수 안에 들어가서 파라미터 이름 목록을 쉽게 얻을 수 있는 방법이 있나요?
예를 들어 다음과 같습니다.
def func(a,b,c):
print magic_that_does_what_I_want()
>>> func()
['a','b','c']
감사합니다.
음, 사실 우린 그런 거 필요 없어inspect
여기서.
>>> func = lambda x, y: (x, y)
>>>
>>> func.__code__.co_argcount
2
>>> func.__code__.co_varnames
('x', 'y')
>>>
>>> def func2(x,y=3):
... print(func2.__code__.co_varnames)
... pass # Other things
...
>>> func2(3,3)
('x', 'y')
>>>
>>> func2.__defaults__
(3,)
Python 2.5 이전 버전의 경우 다음을 사용하십시오.func_code
대신__code__
,그리고.func_defaults
대신__defaults__
.
locals()
는 로컬 이름을 가진 사전을 반환합니다.
def func(a, b, c):
print(locals().keys())
파라미터 목록을 출력합니다.다른 로컬 변수를 사용하는 경우 해당 변수가 이 목록에 포함됩니다.그러나 기능을 시작할 때 복사본을 만들 수 있습니다.
값을 원하는 경우,inspect
모듈
import inspect
def func(a, b, c):
frame = inspect.currentframe()
args, _, _, values = inspect.getargvalues(frame)
print 'function name "%s"' % inspect.getframeinfo(frame)[2]
for i in args:
print " %s = %s" % (i, values[i])
return [(i, values[i]) for i in args]
>>> func(1, 2, 3)
function name "func"
a = 1
b = 2
c = 3
[('a', 1), ('b', 2), ('c', 3)]
import inspect
def func(a,b,c=5):
pass
inspect.getargspec(func) # inspect.signature(func) in Python 3
(['a', 'b', 'c'], None, None, (5,))
언급URL : https://stackoverflow.com/questions/582056/getting-list-of-parameter-names-inside-python-function
반응형
'programing' 카테고리의 다른 글
라라벨 블랭크화이트스크린 (0) | 2022.10.02 |
---|---|
필드의 특정 값에 대한 테이블에 대한 고유한 제약 조건 (0) | 2022.10.01 |
Blob을 바이트 배열로 변환하는 가장 쉬운 방법 (0) | 2022.10.01 |
문자열을 JavaScript 함수 호출로 변환하는 방법 (0) | 2022.10.01 |
목록 이해에서의 이중 반복 (0) | 2022.10.01 |