foo.py를 가져온 후에이 함수를 호출합니다. Foo에는 내가 호출해야하는 몇 가지 메소드가 있습니다. foo.paint, foo.draw을 :모듈 함수를 반복하는 방법
나는 모든 기능 foo.paint을 통해 전화를 반복하는 while 루프를 사용할 필요가import foo
code
if foo:
getattr(foo, 'paint')()
, foo.draw 등 내가 그것에 대해 어떻게 가야합니까?
foo.py를 가져온 후에이 함수를 호출합니다. Foo에는 내가 호출해야하는 몇 가지 메소드가 있습니다. foo.paint, foo.draw을 :모듈 함수를 반복하는 방법
나는 모든 기능 foo.paint을 통해 전화를 반복하는 while 루프를 사용할 필요가import foo
code
if foo:
getattr(foo, 'paint')()
, foo.draw 등 내가 그것에 대해 어떻게 가야합니까?
당신은 이런 식으로 어떻게 든 foo.__dict__
를 사용할 수 있습니다
for name, val in foo.__dict__.iteritems(): # iterate through every module's attributes
if callable(val): # check if callable (normally functions)
val() # call it
하지만 조심,이 모듈의 모든 기능 (호출)를 실행합니다. 특정 함수가 인수를 받으면 실패합니다.
기능이 될 것 얻기 위해 더 우아 (기능) 방법 :
[f for _, f in foo.__dict__.iteritems() if callable(f)]
예를 들어, 다음은 math
방법으로 모든 기능을 나열합니다 :
import math
[name for name, val in math.__dict__.iteritems() if callable(val)]
['pow',
'fsum',
'cosh',
'ldexp',
...]
@BiRico하지만 이것들은 _module_의 메소드입니다. –
@wakamdr가 도움이 되었습니까? –
은 python에 익숙하지 않으므로 구현 방법에 대해 약간 혼란 스럽습니다 : [f if, f in foo .__ dict __. iteritems() if callable (f)]. AttributeError : 'dict'객체에 'iteritems'속성이 없습니다. – wakamdr
내가 그는 생각하지 않습니다 복제. 그 질문에서 OP는 단지 정보를 원했고, 실제로 그는 기능을 호출하기를 원했습니다. –