首先声明:此内容仅用于奥秘目的,不适用于生产代码。我正在尝试在一行Python代码中完成一些操作,因此需要表达式而非语句。(编辑:我正在开发机械化编译代码到单行(大部分)等价Python代码的工具BitBucket - onelinepython。请注意它还处于非常初级的阶段,因此我最初提到时有所保留)
我想要做两件事情:
调用一个函数来引发我选择的异常实例,例如:
raise_exception(WhateverException())
在封闭的环境中运行一个函数,在该环境中,如果引发了异常实例,则可以获取该实例,否则可以获取被调用函数的返回值。例如:
has_exception, return_or_exception = check_exception(f, param1, param2, ...)
至于我尝试过的任何解决方案,答案是没有。我最接近解决这个问题的想法是误用
unittest
的断言功能,但我认为那是走不通的。
编辑 2:为了明确,我可以使用一个使用raise
-语句或try
-块的模块或类。我的目标是将一些代码转换成等效的单行代码(包括我可能使用的任何辅助函数)。但是,由于我希望它能在Python的默认安装上运行,因此我只想使用默认库。
eval()
时,我都会感到非常不安。这几乎让我想接管这门课程。 - JPvdMerwe