2014-08-28 2 views
1

У меня есть несколько вспомогательных функций, используемых для определения особых GObjects. Эти функции следует вызывать во время class_init. Я пытаюсь определить эти объекты непосредственно из python. Можно ли получить доступ к структуре класса во время инициализации класса в PyGObject?Класс init в PyGObject

Например:

from gi.repository import GObject 

class Test (GObject): 
    ... 
    foo = GObject.Property(type=str, default='bar') 
    # At this point is it possible to access the equivalent to 
    # klass in ns_test_class_init (NsTestClass *klass)? 
    ... 
    def a_method (self): 
    ... 

ответ

1

Можно ли получить доступ к класс-структуру во время инициализации класса в PyGObject?

В настоящее время нет. В версии 3.15/16, вероятно, будет добавлена ​​поддержка инициализации класса и поддержки классов GObject для поддержки шаблонов GTK + Composite.

См.: https://bugzilla.gnome.org/show_bug.cgi?id=701843 (у которого есть исправления для этого).

В качестве побочного примечания вы должны иметь возможность делать почти что угодно в чистом Python, используя __init __() или даже метаклассы, которые дают доступ к классу Python, если, конечно, ваши «вспомогательные функции» не записаны на C и требуется класс класса GObject.

Смежные вопросы