Pythonã§ã¡ã½ãããå®ç¾©ããéã¯ãclasså®ç¾©ã®ä¸ã«é¢æ°ãå®ç¾©ãã¾ãã ãã®éã第ä¸å¼æ°ã«ã¯ã¤ã³ã¹ã¿ã³ã¹ãæå®ãã¾ããæ
£ç¿ã§selfã¨ããåä»ãããã¾ãã ã¡ã½ãããå¼ã³åºãéã¯instance.method()ã¨ãã風ã«å¼ã³åºãã¾ãã 以ä¸ã¯å®ç¾©ä¾ã§ãã åå¿è
åãã«Pythonã®ã¤ã³ã¹ã¿ã³ã¹ã®åºç¤ã«ã¤ãã¦ç¾å½¹ã¨ã³ã¸ãã¢ã解説ãã¦ãã¾ããã¤ã³ã¹ã¿ã³ã¹ã¯ã¯ã©ã¹ãå®ä½åãããã®ãè¨ãã¾ããPythonã§ã¯ã©ã¹ãå®ç¾©ããã«ã¯classãã¼ã¯ã¼ãã使ç¨ãã¾ããã³ã³ã¹ãã©ã¯ã¿ã使ã£ã¦ã¯ã©ã¹ã使ç¨ã§ããããã«ãã¦ã¿ã¾ãããã ã¤ã³ã¹ã¿ã³ã¹ã»ã¡ã½ããå
ã®ãselfãã¯ã¤ã³ã¹ã¿ã³ã¹èªèº«ã表ãã¾ãã ã¡ã½ããã®ç¬¬1弿°ã§ãããselfãã®ä¸èº«ã¯èªåçã«æ¸¡ããã第2弿°ä»¥éã¯ã¡ã½ããå¼ã³åºãæã«æ¸¡ãã弿°ã«å¯¾å¿ãã¾ãã ç¹æ®ã¡ã½ãã æ»ãå¤ã¨ã¯ã ã¡ã½ãããå¼ã³åºããçµæã¨ãã¦è¿ãå¤ ãè¨ãã¾ãã å¦ççµæã¨ãã¦ã©ã®å¤ãè¿ããã"return å¤"ã¨æ¸ãäºã§è¨å®ã§ãã¾ãã pythonã§ã¯ãã®ããã«ãã¦ã¯ã©ã¹ãå
ã«ã¤ã³ã¹ã¿ã³ã¹ãçæããã¡ã½ãããå¼ã³åºãã¦ãã¾ãã x.f() ã¨ããå¼ã³åºãã¯ã MyClass.f(x) ã¨å³å¯ã«ç価ãªãã®ã§ãã 9.3.4. ã¡ã½ãããªãã¸ã§ã¯ã - Python ãã¥ã¼ããªã¢ã«. Python ã§ã¯ãã¯ã©ã¹ã¡ã½ããã«ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãããç´æ¥åç
§ã§ãã¾ãã class Hoge : @classmethod def class_name ( cls ) : return cls . ã¯ã©ã¹ã¨ãªãã¸ã§ã¯ããã¯ã©ã¹ã®å®ç¾©ãã¤ã³ã¹ã¿ã³ã¹å¤æ°ã__init__ã¡ã½ãããã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãããªã©ãã¯ã©ã¹ã®åºç¤ç¥èãç´¹ä»ããã (1/2) åå¿è
åãã«Pythonã§ã®ã¤ã³ã¹ã¿ã³ã¹ã®ä½¿ãæ¹ã«ã¤ãã¦ç¾å½¹ã¨ã³ã¸ãã¢ã解説ãã¦ãã¾ããã¤ã³ã¹ã¿ã³ã¹ã¯ã¯ã©ã¹ãã使ãããåã
ã®ã¢ãã®ãã¨ã§ããã¤ã³ã¹ã¿ã³ã¹ã¯å¤æ°ã颿°ãæã¤ãã¨ãåºæ¥ã¾ããã¯ã©ã¹ããã¤ã³ã¹ã¿ã³ã¹ã使ããæ¹æ³ãåæåã¡ã½ããã«ã¤ãã¦è§£èª¬ãã¾ãã Pythonã®ã¯ã©ã¹ã«ã¤ãã¦è¦ã¦ããã¾ããã¯ã©ã¹ã®å®ç¾©ã¨æ¹æ³ãã¤ã³ã¹ã¿ã³ã¹åã¨ã¡ã½ããã®å¼ã³åºãæ¹ãåæåã¡ã½ããã®__init__()ã®å®ç¾©ã®æ¹æ³ãã³ã³ã¹ãã©ã¯ã¿ã¨ãã¹ãã©ã¯ã¿ã®æå³ãæ±ãã¾ããè¦æ
£ããªãselfã®æ±ãã«æ©ãæ
£ãã¾ãããã åå¿è
åãã«Pythonã«ããã__init__ã®å©ç¨æ¹æ³ã«ã¤ãã¦ç¾å½¹ã¨ã³ã¸ãã¢ã解説ãã¦ãã¾ããPythonã§ã¯ã©ã¹ã使ãéã«ã¯ã__init__ã¨ãããã¡ã½ããã使ãã¨ã³ã³ã¹ãã©ã¯ã¿ãå®ç¾©ãããã¨ãã§ãã¾ããã³ã³ã¹ãã©ã¯ã¿ã¯ã¯ã©ã¹ããã¤ã³ã¹ã¿ã³ã¹ãçæãããå ´åã«æåã«å®è¡ãããã¡ã½ããã§ãã Python ã§æååããåçã«é¢æ°ãå¼ã³åºãæ¹æ³ã«ã¤ãã¦. __name__ hoge = Hoge ( ) # ã¯ã©ã¹ãªãã¸ã§ã¯ãããå¼ã³åºã Hoge . Pythonã«ãããã¯ã©ã¹ã¡ã½ããã®æ¦è¦ã§ããã¯ã©ã¹ã¡ã½ããã¯ã¤ã³ã¹ã¿ã³ã¹åããªãã¦ãå¼ã³åºããã¨ãã§ãã¾ãããã¤ã³ã¹ã¿ã³ã¹ããã§ãå¼ã³åºããã¨ãã§ãã¾ãã@classmethodã¯ã©ã¹ã¡ã½ããã®å®è£
ã«ã¯@classmethodãã³ã¬ã¼ã¿ã ã¡ã½ãããããããã£ã®åçå¼ã³åºãã¯ããã¤ã解説ããã£ããã§ããã ã°ãã¼ãã«é¢æ°ã夿°ã®åçå¼ã³åºãã®ããæ¹ãããããªãã£ãã®ã§èª¿ã¹ ⦠ã¤ã³ã¹ã¿ã³ã¹ããã§ããã¯ã©ã¹ããã§ãã©ã¡ãããã§ãå¼ã³åºãå¯è½ã§ãã¤ã³ã¹ã¿ã³ã¹ãç°ãªã£ã¦ãåãå¤ãåå¾ãããã¨ãã§ãã¾ãã javaã§ãããpublic staticããªå¤æ°ã¨åãã ã¤ã³ã¹ã¿ã³ã¹å¤æ°ã¯ãã¤ã³ã¹ã¿ã³ã¹ã«ä¾åãã¦ãã夿°ã§ãã Pythonã®ã¯ã©ã¹ã«ã¤ãã¦è¦ã¦ããã¾ããã¯ã©ã¹ã®å®ç¾©ã¨æ¹æ³ãã¤ã³ã¹ã¿ã³ã¹åã¨ã¡ã½ããã®å¼ã³åºãæ¹ãåæåã¡ã½ããã®__init__()ã®å®ç¾©ã®æ¹æ³ãã³ã³ã¹ãã©ã¯ã¿ã¨ãã¹ãã©ã¯ã¿ã®æå³ãæ±ãã¾ããè¦æ
£ããªãselfã®æ±ãã«æ©ãæ
£ãã¾ãããã ã¯ã©ã¹ã¡ã½ãããªãã¸ã§ã¯ãããã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãããªãã¸ã§ã¯ããå°åºãããéã __self__ ã«è¨æ¶ããã¦ãã "ã¯ã©ã¹ã¤ã³ã¹ã¿ã³ã¹" ã¯å®éã¯ã¯ã©ã¹ãã®ãã®ãªã®ã§ã x.f(1) ã C.f(1) ã®å¼ã³åºãã¯ãæ ¹åºã«ãã颿°ã f ã¨ã㦠f(C,1) ã®å¼ã³åºãã¨ç価ã§ãã args 㨠kwds ããPython ã®é¢æ°ãããã¯ã¡ã½ãã func ãå¼ã³åºããå ´åã¨åãããã«å¼æ°åã«æç¸ãã¾ãã æç¸æ¸ã¿ã¡ã½ãã(bound method)ã®å ´åãæåã®å¼æ°(æ
£ç¿çã« self ã¨ããååãä»ãããã¾ã)ã«ããé¢é£ã¥ããããã¤ã³ã¹ã¿ã³ã¹ãæç¸ãã¾ãã ããã¡ã½ãããã¯ã©ã¹ã¡ã½ããã«ããã¨ãã Python ã§ã¯ãã³ã¬ã¼ã¿ã使ããã¨ãã§ãã¾ãã ã¯ã©ã¹ã¡ã½ããã¯ã¯ã©ã¹å
ã§å®ç¾©ãããã¡ã½ããã§ããã¤ã¤ã³ã¹ã¿ã³ã¹åããªãã¦ãå¼ã³åºãã ⦠Pythonã®ã¯ã©ã¹ã®ç¶æ¿ã«ã¤ãã¦æ¸ãã¦ãã¾ããç¶æ¿ã¯ãããã¯ã©ã¹ã®æ©è½ãæ°ããä½ãã¯ã©ã¹ã«å¼ãç¶ãæ©è½ã§ããç¶æ¿ã使ãã¨å¦çãå
±éåãã¦ã³ã¼ããæ¸ãããã¨ãã§ãã¾ãã親ã®éºä¼åãç¶ãåãä½ããããªãã®ã§ããã Python ã§åãã¤ã³ã¹ã¿ã³ã¹å¤æ°ãã¤ã³ã¹ã¿ã³ã¹ã¡ã½ããããã¤ã¯ã©ã¹ã大éã«åºã¦ããããããããã¯ã©ã¹ãç¶æ¿ããã¨ããããããªã ⦠åå¿è
åãã«Pythonã®classã¨ã¯ï¼åºæ¬ã«ã¤ãã¦ç¾å½¹ã¨ã³ã¸ãã¢ã解説ãã¦ãã¾ããã¯ã©ã¹ã¯ãªãã¸ã§ã¯ãã使ããéã®ãã¼ã¿ãã¡ã½ãããå®ç¾©ãããã®ã§ããclassãã¼ã¯ã¼ãã使ã£ã¦ãç¬èªã®ã¯ã©ã¹ãå®ç¾©ã§ãã¾ããã¯ã©ã¹ãå®ç¾©ãã¦ã¤ã³ã¹ã¿ã³ã¹ã使ãã¦ã¿ã¾ãããã 颿°ãªãã¸ã§ã¯ãããã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãããªãã¸ã§ã¯ãã¸ã®å¤æã¯ã ã¤ã³ã¹ã¿ã³ã¹ãã屿§ãåãåºããããã³ã«è¡ããã¾ãã 3.2. Pythonã«ãããã¹ã¿ãã£ãã¯ã¡ã½ããï¼éçã¡ã½ããï¼ã®æ¦è¦ã§ããã¹ã¿ãã£ãã¯ã¡ã½ããã¯ã¤ã³ã¹ã¿ã³ã¹åããªãã¦ãå¼ã³åºããã¨ãã§ãã¾ãããã¤ã³ã¹ã¿ã³ã¹ããã§ãå¼ã³åºããã¨ãã§ãã¾ãããªãselfãç¨ããã¤ã³ã¹ã¿ã³ã¹å±æ§ï¼ã¤ã³ã¹ã¿ã³ã¹å¤æ°ï¼ ã¯ã©ã¹ã¡ã½ããã¯ã©ã¹ã¡ã½ããã¯ã¤ã³ã¹ã¿ã³ã¹ãçæããã«å©ç¨ã§ããã¡ã½ããã§ããä¸è¨ã®ããã«ãã¯ã©ã¹ã¡ã½ãããå¼ã³åºããã¨ãã§ãã¾ããMessageã¯ã©ã¹mainå¦çå®è¡çµæã¯ã©ã¹ã¡ã½ãããå¼ã³åºãã¾ãããfrom message impor ã¤ã³ã¹ã¿ã³ã¹ham1ããã¯ã©ã¹ã¡ã½ããburnãå¼ã³åºãã¦ã¿ã¾ããã¤ã³ã¹ã¿ã³ã¹çµç±ã§å¼ã³åºãã¦ããã¯ã©ã¹ã¡ã½ããã®ç¬¬ä¸å¼æ°ã¯ã¯ã©ã¹ã§ããã¯ã©ã¹ã®bacon屿§ãå¤ãã£ã¦ãã¾ãã ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ããbakeãå¼ã³åºãã¦ã¿ã ã¯ã©ã¹ã¡ã½ãã. ã¾ããPython ã§ã¯ã¯ã©ã¹å
ã§å®ç¾©ãããã¡ã½ããããã¤ã³ã¹ã¿ã³ã¹å¤æ°ã«ã¢ã¯ã»ã¹ããå ´åã¯ãã¡ã½ããï¼ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ããï¼ã®å¼æ°ã« self ãæ¸¡ãã¦å©ç¨ãã¾ãï¼self ã§ã¯ãªãä»ã®æååã§ãåä½ãã¾ãããPython ã§ã¯æ
£ç¿çã« self ãæ¸¡ãã¾ãï¼ã ã¯ã©ã¹ã¨ãªãã¸ã§ã¯ããã¯ã©ã¹ã®å®ç¾©ãã¤ã³ã¹ã¿ã³ã¹å¤æ°ã__init__ã¡ã½ãããã¤ã³ã¹ã¿ã³ã¹ã¡ã½ããã¨ããã¯ã©ã¹ã®åºç¤ç¥èãç´¹ä»ããã (1/2) (Python ã§ã¯ãã¡ã½ããã¨ããç¨èªã¯ã¯ã©ã¹ã¤ã³ã¹ã¿ã³ã¹ã ãã®ãã®ã§ã¯ããã¾ããã ãªãã¸ã§ã¯ãåã«ãã¡ã½ãããæã¤ãã¨ãã§ãã¾ãã ä¾ãã°ããªã¹ããªãã¸ã§ã¯ãã«ã¯ã append, insert, remove, sort ãªã©ã¨ãã£ãã¡ã½ãããããã¾ãã åå¿è
åãã«Pythonã§å¥ãã¡ã¤ã«ã®é¢æ°ãå®è¡ããæ¹æ³ã«ã¤ãã¦ç¾å½¹ã¨ã³ã¸ãã¢ã解説ãã¦ãã¾ããå¥ã®ãã¡ã¤ã«ã®é¢æ°ãå®è¡ããã«ã¯importãã¼ã¯ã¼ãã使ç¨ãã¾ããæ¨æºã»æ¡å¼µã»èªä½ã®Pythonãã¡ã¤ã«ã«å¯¾å¿ãã¦ãã¾ããããã«fromãã¼ã¯ã¼ãã使ãã¨é層ä¸ã®ãã¡ã¤ã«ãå¼ã³åºããã¨ãåºæ¥ã¾ãã Pythonã®ç¶æ¿ï¼åã¯ã©ã¹ã¯è¦ªã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹å¤æ°ãç¶æ¿ãã.
2020 python インスタンスメソッド 呼び出し