[英]Get Keyword Arguments for Function, Python
def thefunction(a=1,b=2,c=3):
pass
print allkeywordsof(thefunction) #allkeywordsof doesnt exist
會給[a,b,c]
是否有像allkeywordsof這樣的功能?
我無法改變內部的任何東西, thefunction
我想你正在尋找inspect.getargspec :
import inspect
def thefunction(a=1,b=2,c=3):
pass
argspec = inspect.getargspec(thefunction)
print(argspec.args)
產量
['a', 'b', 'c']
如果你的函數包含位置和關鍵字參數,那么找到關鍵字參數的名稱有點復雜,但不是太難:
def thefunction(pos1, pos2, a=1,b=2,c=3, *args, **kwargs):
pass
argspec = inspect.getargspec(thefunction)
print(argspec)
# ArgSpec(args=['pos1', 'pos2', 'a', 'b', 'c'], varargs='args', keywords='kwargs', defaults=(1, 2, 3))
print(argspec.args)
# ['pos1', 'pos2', 'a', 'b', 'c']
print(argspec.args[-len(argspec.defaults):])
# ['a', 'b', 'c']
你想要這樣的東西:
>>> def func(x,y,z,a=1,b=2,c=3):
pass
>>> func.func_code.co_varnames[-len(func.func_defaults):]
('a', 'b', 'c')
您可以執行以下操作以獲得您正在尋找的內容。
>>>
>>> def funct(a=1,b=2,c=3):
... pass
...
>>> import inspect
>>> inspect.getargspec(funct)[0]
['a', 'b', 'c']
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.