sách gpt4 ai đã đi

Đối tượng 'Exception' không thể gọi được - Stack Overflow

In lại 作者:行者123 更新时间:2023-12-05 08:51:55 26 4
mua khóa gpt4 Nike

我是 Python 的新手,我对某种异常方法的实现有疑问。这是代码(缩写):

class OurException(Exception):
"""User defined Exception"""
....

def get_single_value(command: str, connect_string: str, logger: Logger = None, custom_exception: Exception = OurException) -> Tuple[int, str]:
....
raise custom_exception("Errors in script\n\nexit .....")

我默认为OurException的异常参数不能这样抛出。但是,当我将最后一行中的 custom_exception 更改为 Ngoại lệ hoặc OurException 时,问题就消失了。

在 OOP 上下文中,我会说,因为我已将参数定义为异常,并且可以通过这种方式调用异常,所以它可以保证工作。但是,我的 python 解释器和 IDE 不同意(Pycharm、Python 3.7)。

有些东西没有按照我认为的方式工作,我很感兴趣那是什么。

1 Câu trả lời

nếu như custom_exception 应该是 Ngoại lệ của子类,您需要使用类型提示 Type[Exception], thay vì Ngoại lệ 本身。否则,类型提示指定Ngoại lệ củaVí dụ 是预期的,并且通常Ngoại lệ 的实例KHÔNG 可调用。

from typing import Type


def get_single_value(command: str,
connect_string: str,
logger: Logger = None,
custom_exception: Type[Exception] = OurException) -> Tuple[int, str]:
....
raise custom_exception("Errors in script\n\nexit .....")

关于python - “异常”对象不可调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58170051/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com