estruturas recursivas de python ctype

Eu desenvolvi uma DLL para um driver em C. Eu escrevi um programa de teste em C ++ e a DLL funciona bem.

Agora eu gostaria de interratar com essa DLL usando Python. Eu ocultei com sucesso a maioria das estruturas C definidas pelo usuário, mas há um ponto em que preciso usar estruturas C. Eu sou bastante novo para python, então eu posso fazer as coisas erradas.

Minha abordagem é redefinir algumas estruturas em python usando ctype, em seguida, passar a variável para minha DLL. No entanto, nesta classe eu tenho uma lista ligada personalizada que contém tipos recursivos como segue

class EthercatDatagram(Structure):
    _fields_ = [("header", EthercatDatagramHeader),
                ("packet_data_length", c_int),
                ("packet_data", c_char_p),
                ("work_count", c_ushort),
                ("next_command", EthercatDatagram)]

Isso falha, porque dentro do EthercatDatagram, o EthercatDatagram ainda não está definido, portanto, o analisador retorna um erro.

Como devo representar essa lista vinculada em python para que minha DLL a entenda corretamente?

questionAnswers(3)

yourAnswerToTheQuestion