我真的不知道怎么说,但是当我在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) 我想在参数中接收一个函数,并使用一个参数调用它:
__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)
现在你将得到隐式的复制成员,事情就会起作用.