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 の開発者恐るべし。