Python - --> if ((main_paned = gtk.HPaned())) 中的语法错误:

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

我有问题。我在 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";

但 return:语法错误:语法无效。
我做错了什么?以及如何在 if?

中创建添加到变量

C++ 版本使用副作用同时进行赋值和比较。这是有效的,因为赋值运算符恰好也 return 它分配的值,这是 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
}