Одной из замечательных особенностей Python является способность анализировать методы и функции. Например, чтобы получить сигнатуру функции math.log
, вы можете (в ipython) выполнить это:
In [1]: math.log?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function log>
Namespace: Interactive
Docstring:
log(x[, base])
Return the logarithm of x to the given base.
If the base not specified, returns the natural logarithm (base e) of x.
И посмотрите, что x
и, необязательно, base
являются параметрами этой функции.
С новыми gtk3 и автоматически сгенерированными привязками пигобъектов я могу во всех примерах, которые я когда-либо пробовал, получить (*args, **kwargs)
в качестве параметров каждого метода gtk.
Пример: Label.set_text , для которого требуется строка :
In [1]: from gi.repository import Gtk
In [2]: mylabel = Gtk.Label("hello")
In [3]: mylabel.set_text?
Type: instancemethod
Base Class: <type 'instancemethod'>
String Form: <bound method Label.set_text of <Label object at 0x275b230 (GtkLabel at 0x28cd040)>>
Namespace: Interactive
File: /usr/lib/python2.7/dist-packages/gi/types.py
Definition: L.set_text(*args, **kwargs)
Docstring:
<no docstring>
СЕЙЧАС ВОПРОС: это (потеря интроспекции метода для привязок Python) что-то, что изменится еще раз (документирование) усилий, перешло в pygobjects, или это то, что должно остаться здесь из-за работы pygobjects? 1019 *