함수가 필요한 수의 인수를 가지고 있는지 확인하기 위해 (바람직하게는 ast 모듈을 사용하는) 방법이 있습니까?파이썬 함수에 필요한 인수 얻기
예를 들어 사용자 인터페이스에서 사용자가 "sum (x)"와 같은 python 표현식을 삽입 할 수 있지만 사용자가 실수로 "sum()"을 입력하면 런타임 전에 해당 표현식의 유효성을 검사 할 수 있습니까?
심볼 트리의 모든 노드에서 ast.dump를 호출했지만 이러한 심볼에 대한 정보가 이러한 종류의 분석에는 충분하지 않은 것 같습니다. 예를 들어
:
#own debug code added to ast.py
def visit(self, node):
print(dump(node),True, False)
method = 'visit_' + node.__class__.__name__
visitor = getattr(self, method, self.generic_visit)
return visitor(node)
수율 :
'Module(body=[Expr(value=Call(func=Attribute(value=Name(id='Math', ctx=Load()),
attr='cos', ctx=Load()), args=[Num(n=0.5)],
keywords=[], starargs=None, kwargs=None))])'
정말 특정 수의 인수를 필요로하지 않는 인쇄와 같은 기능()에서 차이가 없습니다.
호출되는 개체를 분석하고 분석해야합니다 *. *. 파이썬은 실제로 * 호출을 실행할 때까지 이것을 알지 못한다. –
파이썬 함수에 "필수 인수"를 어떻게 정의합니까? 이 정의는 어디에 정의되어 있습니까? –
나는 모듈'ast.py'의 이름을 지정하지 않겠다. – roippi