小编Ali*_*jas的帖子

使用“try”+“finally”而不使用“except”永远不会产生任何错误

我想如果我使用“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)

exception try-finally python-3.x

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

C++:模板可以成为类的朋友吗?

是否有可能成为一个类的朋友,一个类模板的所有可能的变体?

只是为了澄清,例如,这样的事情:

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)

但是所以我必须在所有其他朋友中更改我的代码,我想避免它。

c++ templates friend-class

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

如何在C++中创建"例程"(无函数)

想象一下,我有一些指令使用/操作我的范围内的许多变量,并且这些指令需要在同一范围内重复多次.
有没有办法封装所有它们并只使用一条指令调用它们而不使用函数?例:

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代码.

c++

-4
推荐指数
1
解决办法
338
查看次数