>>> import_path('os.path.join')
<function join at 0x22d4050>
import_path
(Python 2.6 이상)을 작성하는 가장 간단한 방법은 무엇입니까? 마지막 구성 요소는 항상 모듈/패키지에서 호출 가능하다고 가정합니다.전체 모듈 경로에서 호출 가능 파일을 동적으로 가져 오시겠습니까?
>>> import_path('os.path.join')
<function join at 0x22d4050>
import_path
(Python 2.6 이상)을 작성하는 가장 간단한 방법은 무엇입니까? 마지막 구성 요소는 항상 모듈/패키지에서 호출 가능하다고 가정합니다.전체 모듈 경로에서 호출 가능 파일을 동적으로 가져 오시겠습니까?
이 당신이 원하는 것 같다 :
def import_path(name):
modname, _, attr = name.rpartition('.')
if not modname:
# name was just a single module name
return __import__(attr)
m = __import__(modname, fromlist=[attr])
return getattr(m, attr)
는 파이썬 2.5와 함께 작동하려면 이전, __import__
키워드 인수를하지 않는 경우, 당신은 사용해야합니다 :
m = __import__(modname, {}, globals(), [attr])
def import_path(name):
(mod,mem) = name.rsplit('.',1)
m = __import__(mod, fromlist=[mem])
return getattr(m, mem)
작품을 시도해보십시오 작품 분명히 지금
>>> import_path('os.walk')
<function walk at 0x7f23c24f8848>
및
>>> import_path('os.path.join')
<function join at 0x7f7fc7728a28>
것은 그것을 시도 'os.path.join'에 대해 알려 주시고 작동하는지 알려주십시오. :-) –
우, __import__ 의미가 바보 같아요. –
@sridhar 다행히도, 다행히도 쉽게 해결할 수 있습니다. 가장 최근의 편집을 참조하십시오. –
에 대한 최소한 :
>>> p = 'os.path.join'
>>> a, b = p.rsplit('.', 1)
>>> getattr(__import__(a, fromlist=True), b)
<function join at 0x7f8799865230>
'fromlist' 매개 변수를 남용하지 않고 있습니까? –
예, 있습니다 : –
완료, 고맙습니다. –