小编use*_*147的帖子

Python 3例外不打印新行

我真的不知道怎么说,但是当我在python 3.2中引发异常时,'\n'没有被解析 ...

这是一个例子:

class ParserError(Exception):
    def __init__(self, message):
            super().__init__(self, message)

try:
    raise ParserError("This should have\na line break")
except ParserError as err:
    print(err)
Run Code Online (Sandbox Code Playgroud)

它的工作原理如下:

$ ./test.py
(ParserError(...), 'This should have\na line break')
Run Code Online (Sandbox Code Playgroud)

如何确保新行打印为新行?

class ParserError(Exception):
    pass
Run Code Online (Sandbox Code Playgroud)

要么

print(err.args[1])
Run Code Online (Sandbox Code Playgroud)

python exception stderr

11
推荐指数
1
解决办法
2232
查看次数

使用参数列表中给出的参数调用函数

我想在参数中接收一个函数,并使用一个参数调用它: __CODE__并且__CODE__,禁用隐式生成移动构造函数和移动这些类的赋值运算符.并且由于仅移动数据成员__CODE__,隐式复制成员将被删除.

然而,所有这些都是分散注意力的.

您的__CODE__会员注定失败:

public static <T> T foo(Callable<T> func)
{
     return func.call("bar");
}
Run Code Online (Sandbox Code Playgroud)

这会创建一个rvalue __CODE__,然后将指针返回到该临时值.客户端之前的临时析构可以读取指向该临时的指针.

你需要做的是__CODE__向下传递给__CODE__基类.然后您不需要持有__CODE__或任何其他数据成员.唯一棘手的部分是__CODE__用正确的方法初始化基类__CODE__:

public static <T> T foo(Callable<T> func)
{
     return func.call("bar");
}
Run Code Online (Sandbox Code Playgroud)

现在你将得到隐式的复制成员,事情就会起作用.

java

1
推荐指数
1
解决办法
75
查看次数

标签 统计

exception ×1

java ×1

python ×1

stderr ×1