id:hirokiky ã§ãã
PyQ ã®ã¹ã¿ã³ãã¼ããã©ã³ã®ã客æ§ãããåã質åãããã¤ããã£ãã®ã§ããã°ã§ããç´¹ä»ãã¾ãã PyQã®ã¹ã¿ã³ãã¼ããã©ã³ã§ã¯ãPyQã§å¦ç¿ä¸ã«ããã®Pythonããã°ã©ãã¼ãã質åã¸ã®åçãåãããããµã¼ãã¹ã§ãã
- Python㧠ã¯ã©ã¹.ã¡ã½ãã() ã®ããã«å¼ã³åºãã¦ããã®ã¯ä½ï¼
- ã¯ã©ã¹ã¡ã½ããã¨ã¡ã½ããã®éãã¯ï¼
- ã¯ã©ã¹ã¡ã½ããã¨é¢æ°ã®éãã¯ï¼
Python㧠ã¯ã©ã¹.ã¡ã½ãã()
ã®ããã«å¼ã³åºãã¦ããã®ã¯ä½ï¼
Pythonã§
ã¯ã©ã¹.ã¡ã½ãã()
ã®ããã«å¼ã³åºãããã®ãããã®ã§ãããããã¯ä½ã§ããï¼
ããã¯Pythonã®ãã¯ã©ã¹ã¡ã½ãããã¨ããæ©è½ã§ãã
ã¯ã©ã¹ã«ãã£ã¤ãã¦ããé¢æ°ã®ãããªãã®ã§ãã¤ã³ã¿ã³ã¹åãã¦ããªãã¯ã©ã¹ã®ãã®ããå¼ã³åºãã¾ãã
以ä¸ã®ããã«ãã¡ã½ããã« @classmethod
ã¨ã¤ãããã¨ã§ã¯ã©ã¹ã¡ã½ããã«ã§ãã¾ãã
ãã®ã¨ãã¡ã½ããã®ç¬¬ä¸å¼æ°ã¯ self
ï¼ã¤ã³ã¹ã¿ã³ã¹ï¼ã§ãªãã¯ã©ã¹ãã®ãã®ï¼ä»¥ä¸ã§ã¯ cls
ï¼ã«ãªãã¾ãã
class A: @classmethod def my_cls_method(cls): return "Hello" A.my_cls_method() # "Hello" ãè¿ãã¾ã
ã¯ã©ã¹ã¡ã½ããã¨ã¡ã½ããã®éãã¯ï¼
Pythonã®ã¡ã½ããã¨ã¯ã©ã¹ã¡ã½ããã®éãã¯ä½ã§ããï¼
Pythonã®ã¡ã½ããã¯ãã¯ã©ã¹ãã¤ã³ã¹ã¿ã³ã¹ã«ããªãã¨å¼ã³åºãã¾ããããã¯ã©ã¹ã¡ã½ããã¯ã¯ã©ã¹ããç´æ¥å¼ã³åºãã¾ãã
A.my_cls_method()
ä¾ãã°Djangoã®ã¯ã©ã¹ãã¼ã¹ãã¥ã¼ã® View.as_view()
ãªã©ãããã¾ãã
ã¯ã©ã¹ã¡ã½ããã¨é¢æ°ã®éãã¯ï¼
ã¯ã©ã¹ã¡ã½ããã¨é¢æ°ã®éãã¯ä½ã§ããï¼
ã¯ã©ã¹ã¡ã½ããã¯é¢æ°ã¨ããã»ã©å¤§ããªéãã¯ç¡ãã¨è¨ãã¾ãã ã§ããã以ä¸ã®éããããã¾ãã
- 第ä¸å¼æ°ã§ã¯ã©ã¹ãåå¾ã§ãã
- ã¯ã©ã¹ã®ä¸ã«ããã®ã§ãã¯ã©ã¹ãã¤ã³ãã¼ãããã°ä½¿ããã
ã¯ã©ã¹ã¡ã½ããã®ä½¿ãæã¯ä½ã§ããï¼
ãã使ãããä¾ã¨ãã¦ã¯ããã®ã¯ã©ã¹ãä½ãã¡ã½ãããæ¸ããã¨ã§ãã
以ä¸ã®ä¾ã§ã¯ã¯ã©ã¹ Item
ã¨ãItemã®æ
å ±ãããAPIããåå¾ãã¦è¿ã retrieve_from_api
ã¨ããã¯ã©ã¹ã¡ã½ãããå®è£
ãã¦ãã¾ãã
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"])
ãã¡ããã¯ã©ã¹ã¡ã½ããã使ããã«ã以ä¸ã®ããã«é¢æ°ã§ãæ¸ãã¾ãã
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"])
ãã®ããã«ã¯ã©ã¹ã¡ã½ããã¨é¢æ°ã¯ããã»ã©å¤§ããªéãã¯ããã¾ããã
ã§ããã import Item
ã¨ããã¨ãã«ã¾ã¨ãã¦ã¤ã³ãã¼ãã§ãããã©ããã®éãï¼ã¯ã©ã¹ã®ä¸ã§ã¾ã¨ãã¦ç®¡çã§ãããã©ããã®éãï¼ã大ããã§ãã