Здравствуйте! Есть данный код:
from datetime import date
from pgdb import PGSql
class IDField:
def __get__(self, obj, obj_type):
pass
class DictField(object):
def __init__(self, original_dict = None):
self.container = original_dict or dict()
def __getitem__(self, index):
return self.container[index]
def __setitem__(self, index, value):
self.container[index] = value
def __get__(self, obj, obj_type):
return self.container
class DateField(object):
def __init__(self):
self.value = date.today()
def __get__(self, obj, obj_type):
return self.value.strftime("%d.%m.%y")
def __set__(self, obj, value):
self.value = value
class IntegerField(object):
def __init__(self, value = None):
self.value = value
def __get__(self, obj, obj_type):
return self.value
def __set__(self, obj, value):
self.value = int(value)
class StringField(object):
def __init__(self, value = None):
self.value = value or ""
def __get__(self, obj, obj_type):
return self.value
def __set__(self, obj, value):
self.value = str(value)
class BaseModel:
def __init__(self, tableName):
self._db = PGSql()
self._table = tableName
class cafe(BaseModel):
idx = IDField()
title = StringField()
description = StringField()
images = DictField()
owner_id = IntegerField()
scheme_id = IntegerField()
created_at = DateField()
edited_at = DateField()
def __init__(self):
super().__init__(type(self).__name__)
def __getattr__(self, name):
return f"Атрибут {name} не был найден"
cafe = cafe()
cafe.title = "CoffeeShop"
cafe.scheme_id = "123"
print(cafe.__dict__)
Но почему-то при попытке вывести
cafe.__dict__
он выводит только:
{'_db': <pgdb.PGSql object at 0x10abe7f60>, '_table': 'cafe'}
Но не выводит атрибутов класса Cafe. Что с этим делать?
И еще, пожалуйста, ответьте на вопрос: как убрать наследование атрибутов класса BaseModel в класс Cafe?