Python错误:AttributeError:__enter__

时间:2018-07-19 16:30:02

标签: python python-3.x crazyflie

当我尝试运行代码时收到属性错误。

    with ParamExample(URI) as pe:
    with MotionCommander(pe, default_height=0.3)as mc:

这是发生错误的地方。

Traceback (most recent call last):
File "test44.py", line 156, in <module>
with ParamExample(URI) as pe:
AttributeError: __enter__

那是我在终端中收到的回溯。 如果您需要查看更多我的代码,请告诉我。 任何帮助表示赞赏,谢谢!

1 个答案:

答案 0 :(得分:3)

更多代码(特别是ParamExample实现)将是值得赞赏的,但是我假设您在该类上缺少了__enter__(可能还有__exit__)方法。

当您在python中使用with块时,with语句中的对象将调用其__enter__方法,with内部的块将运行,然后{{1} }被调用(如果引发了则可选地带有异常信息)。因此,如果您在课程上没有定义__exit__,则会看到此错误。

旁注:您需要缩进第二个__enter__块,使其实际上位于第一个块中,或者用

替换这两行
with

与嵌套这两个上下文管理器(with ParamExample(URI) as pe, MotionCommander(pe, default_height=0.3) as mc: 块所使用的对象的名称)相同。