함수의 사용 가능한 세부 정보를 표시하는 인트로 피 션 스 D자를 작성하려고합니다. 다음 코드의 바닥과 같은
뭔가 :Python 속성 이름을 인쇄하는 방법은 무엇입니까?
def sample(_range=4):
""" produce a range of integers """
for i in range(_range):
yield i
f = sample
for i in (f.__name__, f.__doc__, f.__dict__, f.__code__, f.__defaults__, f.__globals__, f.__closure__):
print("XXX", i)
내가 대신
XXX sample
XXX produce a range of integers
XXX {}
XXX <code object sample at 0xfff15890, file "/tmp/tmp.py", line 1>
XXX (4,)
XXX {'__loader__': <_frozen_importlib.SourceFileLoader object at 0xfff13b30>, '__package__': None, '__file__': '/tmp/tmp.py', '__cached__': None, 'i': {...}, 'f': <function sample at 0xfff5b1e0>, '__builtins__': <module 'builtins' (built-in)>, '__doc__': None, '__spec__': None, '__name__': '__main__', 'sample': <function sample at 0xfff5b1e0>}
XXX None
나 '의 예 속성 이름을 인쇄 할 무언가에 XXX
을 변화 달성에 실패 해요 d 갖고 싶습니다
__name__ sample
__doc__ produce a range of integers
__dict__ {}
__code__ <code object sample at 0xfff15890, file "/tmp/tmp.py", line 1>
__defaults__ (4,)
f.__globals__ {'__loader__': <_frozen_importlib.SourceFileLoader object at 0xfff13b30>, '__package__': None, '__file__': '/tmp/tmp.py', '__cached__': None, 'i': {...}, 'f': <function sample at 0xfff5b1e0>, '__builtins__': <module 'builtins' (built-in)>, '__doc__': None, '__spec__': None, '__name__': '__main__', 'sample': <function sample at 0xfff5b1e0>}
__closure__ None
XXX
을 대체해야한다고 생각하십니까?
당신은 사전을 사용할 수 있을까? 속성으로 키와 값의 이름으로 –
대신 이름을 반복하지 않는 이유는 무엇입니까? '[ '__name__', '__doc__', ...]의 이름은 ... ...'. – jonrsharpe
@MosesKoledoye, 그게 정확히'sample' 객체입니다! – jonrsharpe