Tôi có một câu hỏi nhỏ về biến tĩnh và TypeObjects. Tôi sử dụng API C để bọc một đối tượng C++ (hãy gọi nó là Acpp) có một biến tĩnh gọi là x. Hãy gọi TypeObject A_Object tôi:API Python C++: "Biến tĩnh" cho đối tượng kiểu
typedef struct {
PyObject_HEAD
Acpp* a;
} A_Object;
Các TypeObject được gắn vào mô-đun python của tôi "myMod" là "A". Tôi đã xác định phương thức getter và setters (tp_getset) để tôi có thể truy cập và sửa đổi các biến tĩnh của Acpp từ python:
>>> import myMod
>>> myA1 = myMod.A(some args...)
>>> myA1.x = 34 # using the setter to set the static variable of Acpp
>>> myA2 = myMod.A(some other args...)
>>> print myA2.x
34
>>> # Ok it works !
giải pháp này hoạt động nhưng nó không thực sự "sạch". Tôi muốn truy cập biến tĩnh trong python bằng cách sử dụng TypeObject và không phải là trường hợp:
>>> import myMod
>>> myMod.A.x = 34 # what I wish...
Có ai có ý kiến giúp tôi không?
Xin cảm ơn trước.
Cảm ơn bạn đã trả lời. Tôi nghĩ rằng tôi thực sự có thể giải quyết vấn đề của tôi bằng cách thêm một lĩnh vực để tp_dict sau khi gọi đến PyType_Ready. – ThR37