PyGI のオブジェクトは作成時の引数にて
#!/usr/bin/env python3
from gi.repository import Gtk
win = Gtk.Window(title="Test", default_width=500)
win.connect("delete-event", Gtk.main_quit)
win.show()
Gtk.main()
というように property を引数で指定できる。
今まであまり気にしていなかったけど、つまりこういうことだと気が付いた。
#!/usr/bin/env python3
from gi.repository import Gtk
class Win (Gtk.Window):
def __init__(self, **args):
#Gtk.Window.__init__(self, **args)
Gtk.Window.__init__(self)
self.connect("delete-event", Gtk.main_quit)
# Own Property set
for key, value in args.items():
self.set_property(key, value)
self.show()
Win(title="Test", default_width=500)
Gtk.main()
アスタリスク二つだと未定義キーワードの引数を受け取れるのは有名かと。
未定義キーワードは文字列になり辞書として扱える。
こういう本当に有用な形で実装されると「うわー便利!」と実感できますね。
今まで使い道が解らなかっただけだったりするけど。
こんなに便利なら IronPython でも同様にしてやろうと思ったけど…
import wpf from System.Windows import * win = Window(Title="Titlebar", Width=300, Height=100) app = Application() app.run(win)
既に実装されていた。
IronPython の開発者恐るべし。