将C / C ++代码“typedef struct”迁移到python

时间:2012-07-21 23:36:18

标签: python

我有一个问题:

我尝试在python上编写ANT算法,但是我有一个关于C ++的代码,我不知道如何编写这个部分:

typedef struct {
    int x;
    int y;
} cityType;

typedef struct {
    int curCity;
    int nextCity;
                       //MAX_CITIES
    unsigned char tabu[15];
    int pathIndex;
                       //MAX_CITIES
    unsigned char path[15];
    double tourLength;
} antType;

我正在编程,但我不确定

class CityType:
    def __init__(self):
        self.x = arange(MAX_CITIES)
        self.y = arange(MAX_CITIES)

# Class AntType
class AntType:
    def __init__(self):
        self.curCity = arange(MAX_ANTS)
        self.nextCity = arange(MAX_ANTS)
        self.tabu = arange(MAX_ANTS)
        self.pathIndex = arange(MAX_ANTS)
        self.path = arange(MAX_ANTS)
        self.tourLength = arange(MAX_ANTS)

由于

1 个答案:

答案 0 :(得分:2)

这没有什么不妥。但是,在尝试逐字翻译时,您并没有使用Python提供的全部功能和便利性。

例如,如果CityType只有两个成员xy,则可能只是长度为2的元组更具pythonic。 NamedTuple提供了“按名称”访问元组成员的权限。