クラスメソッドの用途がわからないです。
Pythonのクラスメソッド(@classmethod)とは?使いどころとメソッドとの違いを解説
を見て、クラスメソッドの用途を勉強しています。
class Item: def __init__(self, id, name): self.id = id self.name = name @classmethod def retrieve_from_api(cls, id): res = requests.get(f"https://api.example.com/items/{id}") data = res.json() return cls(id, data["name"])
ならimport Item としたときにまとめてインポートできるが、
class Item: def __init__(self, id, name): self.id = id self.name = name def retrieve_item(id): res = requests.get(f"https://api.example.com/items/{id}") data = res.json() return Item(id, data["name"])
ならまとめてインポートできない、だから便利、と言う説明なのですが、なら
class Item: def __init__(self, id, name): self.id = id self.name = name def retrieve_from_api(cls, id): res = requests.get(f"https://api.example.com/items/{id}") #以下省略
で良いのでは?と思います。
一番最後のようなコードではいけない理由を教えてください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/05 11:57
2021/05/05 12:42
2021/05/06 02:53
2021/05/11 07:33