Một trong những điều tuyệt vời của python là khả năng có sự quan tâm đến các phương pháp và chức năng. Ví dụ, để có được những chức năng chữ ký của math.log
bạn có thể (trong ipython) chạy này:Introspection trên pygtk3 có thể?
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.
Và thấy rằng x
và tùy chọn base
là các thông số của chức năng này.
Với gtk3 mới và automaticall generated pygobject bindings, tôi có thể trong tất cả các ví dụ tôi đã thử chỉ nhận được (*args, **kwargs)
làm thông số của mọi phương thức gtk.
Ví dụ: Label.set_text which requires a string:
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>
Bây giờ câu hỏi: là này (sự mất mát của phương pháp mẫn cho bindings python) cái gì đó sẽ thay đổi một lần nữa (tài liệu) nỗ lực đã đi vào pygobjects hoặc là cái gì đó là ở đây để ở lại do cách pygobjects hoạt động?
Câu hỏi hay. Tôi cũng khuyên bạn nên hỏi nó trên bất kỳ giao dịch danh sách gửi thư với pygobject. – ptomato
Điểm của thế hệ kết buộc tự động là cùng một tài liệu C được tạo thông qua gtk-doc hoạt động cho mọi ngôn ngữ. Vì vậy, những gì tôi nghĩ sẽ hữu ích, là các nhà phát triển của pygi để tạo ra các tài liệu cho python giống như cách làm cho các ràng buộc. – erick2red