Абстрактные классы и PyMongo; не может создать экземпляр абстрактного класса
Я создал пустой абстрактный классAbstractStorage
и унаследовалStorage
класс от него:
import abc
import pymongo as mongo
host = mongo.MongoClient()
print(host.alive()) # True
class AbstractStorage(metaclass=abc.ABCMeta):
pass
class Storage(AbstractStorage):
dbh = host
def __init__(self):
print('__init__')
Storage()
Я ожидал, что результат будет
True
__init__
однако, тот, который я получаю,
True
Traceback (most recent call last):
File "/home/vaultah/run.py", line 16, in <module>
Storage()
TypeError: Can't instantiate abstract class Storage with abstract methods dbh
Проблема (видимо) исчезнет, если я уберуmetaclass=abc.ABCMeta
(чтобыAbstractStorage
становится обычным классом) и / или если я установлюdbh
на какую-то другую ценность.
Что тут происходит?