모듈 X에 모든 함수 집합이 있습니다. 모든 입력 집합을 공유합니다. 따라서 식별자를 긴 문자열로 바꾸려면 문자열 서식을 사용하고 싶습니다. 반대로이를 위해, 나는 그런데코레이터에서 대상 함수 모듈 네임 스페이스에 깨끗이 액세스하십시오.
def expanddoc(func):
func.__doc__ = func.__doc__.format(**globals()
return func
하지만 **globals()
이 Y
의 네임 스페이스를 참조
expanddoc
을 가지고
inputs = """Some long string"""
@expanddoc
def spam(...):
"""This is a silly function.
{inputs}
:returns: Something useless
"""
@expanddoc
def eggs(...):
"""This is an even sillier function.
{inputs}
:returns: Something pointless
"""
, 같은 장식을 사용하고 있습니다 X
s 네임 스페이스 func
이 정의 된 모듈의 네임 스페이스에 데코레이터 expanddoc
에서 깨끗하게 액세스하려면 어떻게해야합니까?
그러나이'func'는 모든 모듈에서 오는 될 수있다, 그것은'를 반드시'X'가 아니어야합니다 -'expanddoc'에서 하드 코딩 할 수 없습니다. 아직 모르겠습니다. – gerrit
@gerrit 당신이 옳습니다. – Robert