我有问题。我在c ++中工作,我不知道我在python中做错了什么。
我有一个c ++代码:
if ((main_paned = GTK_PANED(gtk_paned_new(GTK_ORIENTATION_HORIZONTAL)))){
std::cout << "created" << std::endl;
}
我在python中创建了以下代码:
if ((main_paned = gtk.HPaned())):
print "created";
但返回:SyntaxError:语法无效。
我做错了什么?以及如何在if
中创建添加到变量?
答案 0 :(得分:1)
C ++版本使用副作用同时进行赋值和比较。之所以可行,是因为赋值运算符碰巧还会返回它所赋的值,这就是if
用于真实性比较的原因。将其分为两个步骤,就像这样做:
main_paned = GTK_PANED(gtk_paned_new(GTK_ORIENTATION_HORIZONTAL));
if (main_paned)
{
// rest of code
}
Python不允许这种行为,因此您必须做类似的事情
main_paned = gtk.HPaned()
if main_paned:
# code
或者只是
if gtk.HPaned():
这当然是假设您的C ++代码正确,并且您并非打算执行逻辑比较(==
)而不是执行赋值(=
)
if (main_paned == GTK_PANED(gtk_paned_new(GTK_ORIENTATION_HORIZONTAL)))
{
// rest of code
}