2010-03-03 10 views
2

Comment peut-on expose des variables "statiques" comme celui-ciVariables statiques dans l'API Python C

class MyClass: 
    X = 1 
    Y = 2 

via l'API C? La seule variable sur le PyTypeObject qui semble fonctionner serait tp_members, mais je ne vois aucun drapeau dans le PyMemberDef pour indiquer que le membre devrait être par classe, pas par instance.

Pour un peu plus de précisions, car il peut changer la réponse, je suis en train d'exposer un C ENUM à Python tels que l'énumération

enum MyFlags { 
    Alpha = 0, 
    Beta = 1 
}; 

Peut être consulté en Python comme:

module.MyFlags.Alpha 
module.MyFlags.Beta 

Répondre

6

Il suffit de les mettre dans le type tp_dict par exemple avec PyDict_SetItemString.

+0

Excellent! C'est ce que je cherchais. (Vous m'excuserez si je prends un moment pour le tester avant de marquer cela comme une réponse.) – Toji

+0

Fonctionne comme annoncé. :) Merci encore. – Toji

Questions connexes