背景
インスタンスでメソッド呼んだりするのが好きくない.
(インスタンスの内部状態に依存しないようにしたい)
bora = Bora()
dora = bora.Dora("test")
みたいなの, 好きくない.
インスタンスをメソッドで作る API を Python で実現したい
obj = Bora.Dora.NewObject("test")
みたいな? 名前空間(namespace)で機能を切り分けして.
名前空間の階層?
ディレクトリを作ればいいですが, ファイルが増えて面倒です.
とりあえず inner class でいけるっぽい.
class Bora:
class Dora:
...
class method
静的メソッドは @staticmethod
, @classmethod
でいけます.
ここでは @classmethod
使います.
class Bora:
class Dora:
@classmethod
def NewObject(cls, name: str):
obj = cls()
obj.name = name
return obj
Voila!