파이썬이 제 일을하고 있습니다. 몇 가지 모듈을로드하고 클래스를 동적으로 인스턴스화하는 것이 매우 어려울 수 있다고 생각하지 않습니다. 여기에 몇 가지 다른 질문을 읽었지만 제공되는 솔루션 중 아무 것도 나를 위해 작동하지 않는 것 같습니다.동적으로 클래스를로드하고 참조를 얻으십시오.
내 폴더 구조
./coin.py
./exchanges/
/bittrex.py (contains Bittrex class)
/kraken.py (contains Kraken class)
...
내 목표
, 어떤 해키 수단으로 약간의 코드와 않고, 동적으로 이러한 각 모듈을 가져 클래스에 대한 참조 내를 얻으려면 그래서 나는 그것들을 인스턴스화하고 속성을 얻을 수 있습니다.
내 현재 코드
import glob, exchanges, dirfiles, isfile, inspect
dirfiles = glob.glob(dirname(__file__) + "/exchanges/*.py")
__all__ = [ basename(f)[:-3] for f in dirfiles if isfile(f) and not f.endswith('__init__.py')]
class Indicator(object):
def __init__(self):
for exchange in __all__:
class_name = exchange.capitalize()
class_ = getattr(exchange, class_name)
self.EXCHANGES.append({
'code': exchange,
'name': class_name,
'instance': class_(self)
})
그러나 위의 코드와 나는 항상 시도는 문자열로 내 의도 클래스 참조를 해석하여 결국 한 여러 가지 순열.
동적으로 클래스 이름이 a = 'Bittrex'와 같이 변수에 저장된다는 것을 의미합니까 ?? 덕분에 –