1

我有个问题:

我尝试在 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)

谢谢

4

1 回答 1

2

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

例如,如果 CityType 只有两个成员,x并且y,可能只是长度为 2 的元组更符合 Python 风格。NamedTuple提供对元组成员“按名称”的访问。

于 2012-07-21T23:48:27.007 回答