首页 > 解决方案 > 定义为内部类的异常的限定名称

问题描述

import typing

class A:
    def __init__(self, symbol: str):
        if not symbol:
            raise self.MissingException('Symbol (str) required!')

        self.symbol = symbol

    class MissingException(Exception):
        pass

if __name__ == '__main__':
    A(None)

输出

Traceback (most recent call last):
  File "/tmp/test.py", line 16, in <module>
    A(None)
  File "/tmp/test.py", line 7, in __init__
    raise self.MissingException('Symbol (str) required!')
__main__.MissingException: Symbol (str) required!

有人可以帮我理解为什么 Exception 被命名__main__.MissingException而不是被命名为__main__.A.MissingException

谢谢

标签: pythonpython-3.x

解决方案


推荐阅读