我想如果我使用“try”并且只使用“finally”else,没有任何“except”,如果“try”语句无法执行,则应该执行“finally”语句,但之后,应该会出现错误在执行中显示,但在这个简单的代码中,我故意强制执行无效操作,错误永远不会跳转。为什么?
def division_peligrosa(a, b):
try:
a = float(a); b = float(b)
return a/b
finally:
return "Aquí va haber un error..."
print (division_peligrosa(5,0))
print (division_peligrosa("dividendo",28.3))
print ("\nFin del programa, ¡pero nada ocurre!\n")
Run Code Online (Sandbox Code Playgroud) 是否有可能成为一个类的朋友,一个类模板的所有可能的变体?
只是为了澄清,例如,这样的事情:
class A
{ friend template B; } // syntactic error yeah
Run Code Online (Sandbox Code Playgroud)
因此,任何B<X>变体都可以操纵A.
A是一个小而简单的类,有很多操作其属性的朋友。只有其中一个需要是模板。我知道我可以这样做:
template <class T>
class A
{ friend class B<T>; }
Run Code Online (Sandbox Code Playgroud)
但是所以我必须在所有其他朋友中更改我的代码,我想避免它。
想象一下,我有一些指令使用/操作我的范围内的许多变量,并且这些指令需要在同一范围内重复多次.
有没有办法封装所有它们并只使用一条指令调用它们而不使用函数?例:
int main()
{
int contador = 0;
float dato;
queue<float> cola;
// a lot of other variables
RUTINA
{
contador++;
cola.push(dato);
// manipuling a lot of other variables
cout<<"Se ha ingresado un nuevo dato: "<<dato;
}
...
...
// something happens
RUTINA;
...
...
// another thing happens
RUTINA;
...
...
// another thing else happens
RUTINA;
...
...
}
Run Code Online (Sandbox Code Playgroud)
显然,尝试使用函数执行此操作不会很好(特别是如果我们在例程中操作许多变量).
更新:如果我在main()之外使用一个函数(内部不允许),它当然会工作,但是我必须发送所有变量如何引用参数...它与复制/粘贴几乎相同每次我需要时的rutine代码.