Python--> if((main_paned = gtk.HPaned()))中的SyntaxError:

时间:2018-09-20 18:15:54

标签: python gtk pygtk

我有问题。我在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中创建添加到变量?

1 个答案:

答案 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
}