python - 为什么我无法访问继承类的属性?
问题描述
给定以下类:
class DataAccessLayer():
def __init__(self):
self.engine = create_engine(CONN_STRING, pool_size=95, max_overflow=0)
self.connection = self.engine.connect()
class DataAccessLayerParallel(DataAccessLayer):
def __init__(self):
session_factory = sessionmaker(bind=self.connection)
我尝试创建DataAccessLayerParallel
如下实例:
dal = DataAccessLayerParallel()
但是,我收到错误:
Exception has occurred: AttributeError
'DataAccessLayerNonParallel' object has no attribute 'connection'
我认为这是因为__init__
方法 fromDataAccessLayer
在继承时没有运行?我将如何确保我可以访问该connection
属性?
解决方案
您需要使用 调用父构造函数super
。像这样:
class DataAccessLayer():
def __init__(self):
self.engine = create_engine(CONN_STRING, pool_size=95, max_overflow=0)
self.connection = self.engine.connect()
class DataAccessLayerParallel(DataAccessLayer):
def __init__(self):
super(DataAccessLayerParallel, self).__init__()
self.session_factory = sessionmaker(bind=self.connection)
推荐阅读
- c# - Linq 从数据库中过滤结果
- java - 我在 Hibernate 中使用 BigDecimal 类获取精确数值时遇到问题
- enums - 如何使用 automapper 映射使用不同大小写的 2 个枚举
- excel - 用一行代码隐藏所有自动筛选下拉菜单
- python - 如何使用 Python 检查具有 Hoeffding 不等式/VC 维度的二元分类问题的学习可行性?
- python - ValueError:分类指标无法处理多标签指标和二元目标的混合
- android - 如何在九个补丁图像自定义图像中设置图像
- php - 只显示空白页,没有错误,没有输出
- python - 定义函数的行为方式,取决于传入的名称
- sql - MS Access Query,显示所有记录的条件