python - AttributeError:“NoneType”对象没有属性“get_values”
问题描述
我是编码新手,需要你的帮助。我收到以下错误:
line 159, in _get_solution
xs = np.array(ms.get_values(self.int_var)).reshape(self.path_n, self.orderbook_n)
AttributeError: 'NoneType' object has no attribute 'get_values'
到达这部分代码后:
line 159, in _get_solution
xs = np.array(ms.get_values(self.int_var)).reshape(self.path_n, self.orderbook_n)
当我使用:print(dir(ms))
检查可能导致这种情况的原因时,它给了我以下信息:
['__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
我怎样才能继续让代码运行?
这部分的完整代码是:
def _get_solution(self):
'''function to solve the optimization model, save result and print outputs'''
self.print_content = ''
self.trade_solution = OrderedDict()
ms = self.solve()
xs = np.array(ms.get_values(self.int_var)).reshape(self.path_n, self.orderbook_n)
zs = xs * self.precision_matrix
nonzeroZ = list(zip(*np.nonzero(zs)))
nonzeroZ = sorted(nonzeroZ, key=lambda x: x[0])
解决方案
该错误告诉您该变量ms
已评估为None
,这就是它没有get_values()
方法的原因。
假设错误消息中的第 159 行是 中的对应行_get_solution()
,这意味着在上面的行中
ms = self.solve()
调用self.solve()
返回None
。
您需要检查self.solve()
以了解它为什么这样做。
由于您是 Python 新手,请记住,当函数或方法没有 return 语句,或者从未到达有效的 return 语句时,它将None
默认返回。
推荐阅读
- ruby-on-rails - 将 Rails 应用部署到生产环境,为什么还要使用环境暂存?
- python - 使用 Python3.5 安装带有 pip 问题的 scikit-image
- excel - 是否可以为特定公式启用 Excel 手动计算?
- angular - Angular http:HEAD 404 http 响应
- javascript - 嵌套对象中的“this”(JavaScript)
- deployment - 在微服务架构中管理服务的依赖版本
- maven - 通过 frontend-maven-plugin 运行反应脚本不起作用
- python - 使用 OOP 方法绘制快速变化的数据
- postgresql - 如何在 pgadmin postgresql 中查看来自 refcursor 的数据
- react-i18next - 如何修复“TypeError:createContext 不是函数”