다양한 가져온 파일에서 호출해야하는 여러 가지 기능이 있습니다.문자열을 객체로 전달하여 getattr python에 전달하는 방법
기능이의 라인을 따라 형식의됩니다
a.foo
b.foo2
a.bar.foo4
a.c.d.foo5
그들은 원시 문자열로 내 스크립트에 전달됩니다. 내가 수익을 인수 다음을 실행하고 얻을 수있는 깨끗한 방법을 찾고 있어요
내가 전화 getattr 오른쪽을 공급 한 후 문자열을 분할의 지저분한 시스템을 가지고 있지만이 느끼는 지금
값 서투른 일종이며 매우 확장 성이 없습니다. getattr의 객체 부분을 문자열로 전달할 수있는 방법이 있습니까? 아니면이 일을하는 다른 방법?
import a, b, a.bar, a.c.d
if "." in raw_script:
split_script = raw_script.split(".")
if 'a' in raw_script:
if 'a.bar' in raw_script:
out = getattr(a.bar, split_script[-1])(args)
if 'a.c.d' in raw_script:
out = getattr(a.c.d, split_script[-1])(args)
else:
out = getattr(a, split_script[-1])(args)
elif 'b' in raw_script:
out = getattr(b, split_script[-1])(args)