Pythonは私の言いたいことをしています。いくつかのモジュールを読み込んでクラスを動的にインスタンス化するのはとても難しいとは思いません。私はここでいくつかの他の質問を読んだが、提供された解決策のどれも私のために働くようではない。クラスを動的にロードして参照を取得します
マイフォルダ構造
./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'のように変数に格納されます。ありがとう。 –