我是Python的新手,我在“dao”包下面有以下简单的层次结构:
class BaseDao:
def __init__(self):
self.connection = ... # initialize the connection
self.connection.autocommit = False
def get_connection(self):
return self.connection
def close(self):
self.connection.close()
class PriceMomentumDao(BaseDao):
def __init__(self):
super(PriceMomentumDao, self).__init__()
现在是我的客户代码:
import from dao PriceMomentumDao
myDao = PriceMomentumDao
myDao.get_connection()
然后我收到错误:
AttributeError: 'module' object has no attribute 'get_connection'
答案 0 :(得分:2)
这里有两件事是错的:
使用
myDao = PriceMomentumDao.PriceMomentumDao()
或调整导入:
from dao.PriceMomentumDao import PriceMomentumDao
# ...
myDao = PriceMomentumDao()
您可能需要注意Python styleguide, PEP 8中给出的建议,并使用price_momentum_dao
作为模块名称。
如果这是Python 2,请确保您也继承object
,否则您将无法使用super()
等新式类功能:
class BaseDao(object):