からサブクラスを取得し、私は私のapi.pyから私のサブクラスSub
クラスオブジェクトを取得したいと思います:モジュール
import inspect
from tm_base import Base
import tm_child
for k, v in vars(tm_child).iteritems():
if inspect.isclass(v):
if (Base in inspect.getmro(v) and
not inspect.isabstract(v)):
print v
私は両方の取得api.py実行している場合:
<class 'tm_child.Sub'>
<class 'tm_base.Base'>
をし、私は<class 'tm_child.Sub'>
のみをお勧めします。これが私がnot inspect.isabstract(v)
を使用している理由です。私のコードで何が間違っているかわかりません。
ここに私の他のファイル。
tm_base.py
from abc import ABCMeta
class Base(object):
__metaclass__ = ABCMeta
tm_child.py
from tm_base import Base
class Sub(Base):
pass
抽象クラスを持っている必要がありますが抽象メソッド。 ABCMetaメタクラスの単純な存在はクラス抽象化をしません。結局のところ、SubはBaseから継承したメタクラスとしてABCMetaも持っています。 – user2357112