Xåp*_* - 3 python scope nested class nested-class
我想在我自己的类中嵌套一个Exception子类,如下所示:
class Foo(object):
def bar(self):
#does something that raises MyException
class MyException(Exception):
pass
Run Code Online (Sandbox Code Playgroud)
这样,我只需要从另一个模块调用bar()时导入Foo(而不是MyException).但是我在下面的内容不起作用:
from foo_module import Foo
foo = Foo()
try:
foo.bar()
except Foo.MyException as e:
print e
Run Code Online (Sandbox Code Playgroud)
Python给出了这个错误:
类型对象'Foo'没有属性'MyException'
有没有办法做到这一点?
鉴于以下内容t.py
:
class Foo():
def RaiseBar(self):
raise Foo.Bar("hi")
class Bar(Exception):
pass
Run Code Online (Sandbox Code Playgroud)
并在python终端上运行:
>>> import t
>>> x = t.Foo()
>>> try:
... x.RaiseBar()
... except t.Foo.Bar as e:
... print e
...
hi
Run Code Online (Sandbox Code Playgroud)
这不是你想要的吗?
不确定你的错误是什么,我建议你更仔细地重新检查代码.