私はこのCコードを持っています:
typedef struct test * Test;
struct test {
void *a;
Test next;
};
これと同等のものを Python でどのように実装しますか (それが可能な場合)?
Python では、任意の型のオブジェクトを変数に割り当てることができます。したがって、次のように任意のクラスを使用できます。
class test(object):
__slots__ = ['a', 'next']
x = test()
x.next = x
x.a = 42
__slots__
はオプションであり、メモリのオーバーヘッドを削減する必要があることに注意してください(属性へのアクセスも高速化される可能性があります)。また、次のようにコンストラクターを作成することもよくあります。
class test(object):
def __init__(self, a, next):
self.a = a
self.next = next
x = test(21, None)
assert x.a == 21
クラスが不変である可能性がある場合は、namedtupleも参照してください。
import collections
test = collections.namedtuple('test', ['a', 'next'])