如何在swig的python中使用枚举?

问题描述 投票:6回答:1

我有一个如下的枚举声明:

typedef enum mail_ {
    Out = 0,
    Int = 1,
    Spam = 2
} mail;

功能:

mail status;
int fill_mail_data(int i, &status);

在以上功能中,status被填满并发送。

当我通过痛饮尝试时,我面临以下问题:

  1. 没有显示mail的详细信息。当我尝试打印mail.__doc__help(mail)时,尽管我可以使用这些值(SpamInOut),但抛出一个错误,说没有这样的属性。 >
  2. 如上所述,Swig不知道main是什么,因此它不接受该mail的任何函数参数。

我有一个枚举声明,如下所示:typedef enum mail_ {Out = 0,Int = 1,Spam = 2} mail;功能:邮件状态; int fill_mail_data(int i,&status);在上面的函数中,...

python enums swig
1个回答
5
投票

对于SWIG,enum只是一个整数。要将其用作示例中的输出参数,还可以像下面这样声明该参数为输出参数:

© www.soinside.com 2019 - 2024. All rights reserved.