え!! class を使わずに class を!?
# 出来らあっ!
Foo = type('Foo', (), dict(bar=1, baz=2))
↑で作られた Foo
は↓で作る Foo
と同義。
class Foo:
bar = 1
baz = 2
type ノート
type
はオブジェクトの型を教えてくれる組み込み関数だ。
print(type('foo')) # <class 'str'>
print(type({1:1})) # <class 'dict'>
と同時に、クラスの型だ。文字列の型が str
だったり辞書の型が dict
であるように、クラスの型は type
だ。だから冒頭のようにクラスを生成できる。この場合、「クラスインスタンスを作る」というふうに言ってしまっていいのだろうか……クラスインスタンスとかいう謎ワード……。
概要
というわけで久々の「1日1Python」でした。出来らあっ! がやりたかっただけだが、まあ Pythonista の末席を汚すものとしてたまには Python のニッチな話を書きたかったのだ。