- 1 1. Python ã¯ã©ã¹ã¡ãœãããšã¯ïŒåºç€ãããããããã解説
- 2 2. Python ã¯ã©ã¹ã¡ãœããã®å®çŸ©ãšäœ¿ãæ¹
- 2.1 2.1 ã¯ã©ã¹ã¡ãœããã®åºæ¬æ§æ
- 2.2 2.2 ã¯ã©ã¹ã¡ãœããã®å®è£ äŸ
- 2.3 2.3 ã¯ã©ã¹ã¡ãœããã®åŒã³åºãæ¹
- 2.4 2.4 ã¯ã©ã¹å€æ°ãæäœããã¯ã©ã¹ã¡ãœãã
- 2.5 2.5 ã¯ã©ã¹ã¡ãœããã䜿ã£ãã€ã³ã¹ã¿ã³ã¹ã®äœæïŒãã¡ã¯ããªã¡ãœããïŒ
- 2.6 2.6 ã€ã³ã¹ã¿ã³ã¹ã¡ãœãããšã®éã
- 2.7 2.7 ã¯ã©ã¹ã¡ãœããã®äœ¿ãã©ãã
- 2.8 2.8 ãŸãšã
- 3 3. Python ã¯ã©ã¹ã¡ãœããã®æŽ»çšäŸïŒå®è·µçãªãŠãŒã¹ã±ãŒã¹ïŒ
- 3.1 3.1 ã¯ã©ã¹ã¡ãœããã®ä»£è¡šçãªæŽ»çšãã¿ãŒã³
- 3.2 3.2 ãŠãŒã¹ã±ãŒã¹â ïŒãã¡ã¯ããªã¡ãœãããšããŠå©çš
- 3.3 3.3 ãŠãŒã¹ã±ãŒã¹â¡ïŒèšå®å€ãå ±éããŒã¿ã®ç®¡ç
- 3.4 3.4 ãŠãŒã¹ã±ãŒã¹â¢ïŒã¯ã©ã¹ã®ç¶æ ã倿Žããã¡ãœãã
- 3.5 3.5 ãŠãŒã¹ã±ãŒã¹â£ïŒç¶æ¿ã掻ãããã¯ã©ã¹ã®åçãªå©çš
- 3.6 3.6 ãŠãŒã¹ã±ãŒã¹â€ïŒããŒã¿ããŒã¹æ¥ç¶ã管çã®ç°¡ç¥å
- 3.7 3.7 ãŸãšã
- 4 4. ã¯ã©ã¹ã¡ãœãããšä»ã®ã¡ãœããã®éãïŒæ¯èŒè¡šä»ãïŒ
- 5 5. Python ã¯ã©ã¹ã¡ãœããã®ããããçåïŒFAQïŒ
- 6 6. ãŸãšãïŒã¯ã©ã¹ã¡ãœããã®çè§£ãæ·±ãããïŒ
1. Python ã¯ã©ã¹ã¡ãœãããšã¯ïŒåºç€ãããããããã解説
Pythonã«ã¯ãã¯ã©ã¹ã¡ãœããããšããä»çµã¿ããããã¯ã©ã¹å
šäœã«å¯ŸããŠåŠçãè¡ãããã®ã¡ãœãããå®çŸ©ããéã«äœ¿çšãããŸããã¯ã©ã¹ã¡ãœããã¯ãç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ïŒãªããžã§ã¯ãïŒã§ã¯ãªããã¯ã©ã¹ãã®ãã®ã«å¯ŸããŠæäœãè¡ãããã«äœ¿ãããŸãã
æ¬èšäºã§ã¯ãã¯ã©ã¹ã¡ãœããã®åºæ¬ããããã®äœ¿ãæ¹ãæŽ»çšæ¹æ³ãŸã§è©³ãã解説ããŠãããŸãã
1.1 Pythonã®ã¯ã©ã¹ã¡ãœãããšã¯ïŒ
ã¯ã©ã¹ã¡ãœããã¯ãPythonã® @classmethod
ãã³ã¬ãŒã¿ãçšããŠå®çŸ©ããã第äžåŒæ°ãšããŠã¯ã©ã¹èªäœãåãåãã®ãç¹åŸŽã§ãã
éåžžã®ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã¯ç¬¬äžåŒæ°ã« self
ãåãåãã®ã«å¯Ÿããã¯ã©ã¹ã¡ãœããã§ã¯ cls
ïŒclassã®ç¥ïŒãåŒæ°ãšããŠåãåããŸãã
ãã® cls
ã䜿ãããšã§ãã¯ã©ã¹å€æ°ã«ã¢ã¯ã»ã¹ããããã¯ã©ã¹èªäœãæäœãããããããšãå¯èœã«ãªããŸãã
1.2 ã¯ã©ã¹ã¡ãœããã®ç¹åŸŽ
ã¯ã©ã¹ã¡ãœããã«ã¯ã以äžã®ãããªç¹åŸŽããããŸãã
- ã€ã³ã¹ã¿ã³ã¹ãäœæããã«åŒã³åºãã
- éåžžã®ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã¯ãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãçæããªããšåŒã³åºããŸãããããããã¯ã©ã¹ã¡ãœããã¯ãã€ã³ã¹ã¿ã³ã¹ãäœããã«çŽæ¥ã¯ã©ã¹ããåŒã³åºããŸãã
- ã¯ã©ã¹å€æ°ãæäœã§ãã
- ã¯ã©ã¹ã¡ãœããã¯ãã¯ã©ã¹ã«å±ãã倿°ïŒã¯ã©ã¹å€æ°ïŒãçŽæ¥æäœã§ããŸããããã«ããããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã§å ±éã®ããŒã¿ã管çãããããªããŸãã
- ãã¡ã¯ããªã¡ãœãããšããŠã®å©çš
- ã¯ã©ã¹ã¡ãœããã¯ãç¹å®ã®ããŒã¿ãå ã«ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãçæãããã¡ã¯ããªã¡ãœãããšããŠå©çšãããããšãå€ãã§ãã
1.3 ã¯ã©ã¹ã¡ãœãããåŠã¶ã¡ãªãã
Pythonã®ã¯ã©ã¹ã¡ãœãããçè§£ããæŽ»çšã§ããããã«ãªããšã以äžã®ãããªã¡ãªããããããŸãã
â
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®çè§£ãæ·±ãŸã
â
ã³ãŒãã®åå©çšæ§ãåäžãã
â
ã¯ã©ã¹å€æ°ãå¹ççã«ç®¡çã§ãã
1.4 ã¯ã©ã¹ã¡ãœãããçè§£ããããã®åæç¥è
1.4.1 Pythonã®ã¯ã©ã¹ãšãªããžã§ã¯ã
Pythonã¯ãªããžã§ã¯ãæåããã°ã©ãã³ã°ïŒOOPïŒãæ¡çšããŠããããã¯ã©ã¹ããšããæŠå¿µãçšããŠã³ãŒããæ§ç¯ããŸãã
class Car:
def __init__(self, brand):
self.brand = brand # ã€ã³ã¹ã¿ã³ã¹å€æ°
my_car = Car("Toyota")
print(my_car.brand) # Toyota
1.4.2 self
ãš cls
ã®éã
ã¯ã©ã¹ã¡ãœãããçè§£ããäžã§ããself
ãš cls
ã®éããã¯éåžžã«éèŠãªãã€ã³ãã§ãã
ããŒã¯ãŒã | åœ¹å² | ã©ãã§äœ¿ãïŒ |
---|---|---|
self | ã€ã³ã¹ã¿ã³ã¹ïŒãªããžã§ã¯ãïŒãåç §ãã | ã€ã³ã¹ã¿ã³ã¹ã¡ãœãã |
cls | ã¯ã©ã¹èªäœãåç §ãã | ã¯ã©ã¹ã¡ãœãã |
以äžã®äŸãèŠãŠã¿ãŸãããã
class Example:
class_variable = "ã¯ã©ã¹å€æ°"
def instance_method(self):
return "ããã¯ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã§ã"
@classmethod
def class_method(cls):
return f"ã¯ã©ã¹å€æ°ã®å€: {cls.class_variable}"
# ã¯ã©ã¹ã¡ãœããã¯ã€ã³ã¹ã¿ã³ã¹ãäœããã«åŒã³åºãã
print(Example.class_method()) # ã¯ã©ã¹å€æ°ã®å€: ã¯ã©ã¹å€æ°
# ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã¯ã€ã³ã¹ã¿ã³ã¹ãäœããªããšåŒã³åºããªã
example_instance = Example()
print(example_instance.instance_method()) # ããã¯ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã§ã
1.5 ãŸãšã
- ã¯ã©ã¹ã¡ãœããã¯ãã¯ã©ã¹ãã®ãã®ã«äœçšããã¡ãœãã
- @classmethod ãã³ã¬ãŒã¿ã䜿ã£ãŠå®çŸ©ãã第äžåŒæ°ã«
cls
ãåãåã - ã€ã³ã¹ã¿ã³ã¹ãäœæããã«åŒã³åºãã
- ã¯ã©ã¹å€æ°ã®ç®¡çããã¡ã¯ããªã¡ãœãããšããŠæŽ»çšã§ãã
self
ã¯ã€ã³ã¹ã¿ã³ã¹ãåç §ããcls
ã¯ã¯ã©ã¹ãåç §ãã
2. Python ã¯ã©ã¹ã¡ãœããã®å®çŸ©ãšäœ¿ãæ¹
åã®ã»ã¯ã·ã§ã³ã§ã¯ãã¯ã©ã¹ã¡ãœããã®åºæ¬æŠå¿µããã®åœ¹å²ã«ã€ããŠè§£èª¬ããŸãããããã§ã¯ãå®éã«ã¯ã©ã¹ã¡ãœãããã©ã®ããã«å®çŸ©ããã©ã®ããã«äœ¿ãã®ããå ·äœçãªã³ãŒãäŸã亀ããŠè©³ãã説æããŸãã
2.1 ã¯ã©ã¹ã¡ãœããã®åºæ¬æ§æ
Pythonã§ã¯ã©ã¹ã¡ãœãããå®çŸ©ããã«ã¯ã@classmethod
ãã³ã¬ãŒã¿ã䜿ããŸãã以äžãåºæ¬çãªæ§æã§ãã
class ã¯ã©ã¹å:
@classmethod
def ã¡ãœããå(cls, åŒæ°1, åŒæ°2, ...):
# ã¡ãœããã®åŠç
return çµæ
ã¯ã©ã¹ã¡ãœããã®å®çŸ©ã®ãã€ã³ã
@classmethod
ãã³ã¬ãŒã¿ãã¡ãœããã®çŽåã«èšè¿°ãã- 第äžåŒæ°ãšããŠ
cls
ãåãåãïŒcls
ã¯ã¯ã©ã¹èªèº«ãåç §ïŒ - ã¯ã©ã¹å€æ°ãä»ã®ã¯ã©ã¹ã¡ãœããã«ã¢ã¯ã»ã¹ã§ãã
- ã¯ã©ã¹åããçŽæ¥åŒã³åºããïŒã€ã³ã¹ã¿ã³ã¹ã¯äžèŠïŒ
2.2 ã¯ã©ã¹ã¡ãœããã®å®è£ äŸ
å®éã«ã¯ã©ã¹ã¡ãœãããå®çŸ©ããŠåäœã確èªããŠã¿ãŸãããã
class Sample:
class_variable = "ã¯ã©ã¹å€æ°"
@classmethod
def class_method(cls):
print(f"ã¯ã©ã¹ã¡ãœãããåŒã³åºãããŸãããã¯ã©ã¹å€æ°ã®å€: {cls.class_variable}")
# ã¯ã©ã¹ã¡ãœããã®åŒã³åºã
Sample.class_method()
å®è¡çµæ
ã¯ã©ã¹ã¡ãœãããåŒã³åºãããŸãããã¯ã©ã¹å€æ°ã®å€: ã¯ã©ã¹å€æ°
ã³ãŒãã®è§£èª¬
class_variable
ã¯ã¯ã©ã¹å€æ°ãšããŠå®çŸ©ãããŠããŸããclass_method()
ã¯@classmethod
ãã³ã¬ãŒã¿ãä»ããŠãããcls
ã䜿ã£ãŠclass_variable
ã«ã¢ã¯ã»ã¹ããŠããŸããSample.class_method()
ãšãã圢ã§ãã€ã³ã¹ã¿ã³ã¹ãäœããã«çŽæ¥ã¡ãœãããåŒã³åºããããšããã€ã³ãã§ãã
2.3 ã¯ã©ã¹ã¡ãœããã®åŒã³åºãæ¹
ã¯ã©ã¹ã¡ãœããã¯ã以äžã®2ã€ã®æ¹æ³ã§åŒã³åºãããšãã§ããŸãã
â ã¯ã©ã¹åããçŽæ¥åŒã³åºã
Sample.class_method()
ããã¯æãäžè¬çãªåŒã³åºãæ¹ã§ãã¯ã©ã¹å šäœã«å¯ŸããåŠçãå®è¡ã§ããŸãã
â¡ ã€ã³ã¹ã¿ã³ã¹ãéããŠåŒã³åºã
sample_instance = Sample()
sample_instance.class_method()
ãã®å Žåãã€ã³ã¹ã¿ã³ã¹ãçµç±ããŠãã¡ãœãããå®è¡ãããŸãããcls
ã«ã¯ã€ã³ã¹ã¿ã³ã¹ã§ã¯ãªãã¯ã©ã¹ãæž¡ãããç¹ã«æ³šæããŠãã ããã
2.4 ã¯ã©ã¹å€æ°ãæäœããã¯ã©ã¹ã¡ãœãã
ã¯ã©ã¹ã¡ãœããã¯ãã¯ã©ã¹å€æ°ã倿Žããéã«éåžžã«äŸ¿å©ã§ããäŸãã°ãããŒãžã§ã³æ å ±ãèšå®å€ã管çããå Žåã«äœ¿çšã§ããŸãã
class Config:
version = "1.0"
@classmethod
def update_version(cls, new_version):
cls.version = new_version # ã¯ã©ã¹å€æ°ã倿Ž
# ã¯ã©ã¹ã¡ãœããã䜿ã£ãŠããŒãžã§ã³ãæŽæ°
Config.update_version("2.0")
print(Config.version) # 2.0
解説
update_version()
ã¯cls.version
ã䜿ã£ãŠã¯ã©ã¹å€æ°ã倿ŽããŸããConfig.update_version("2.0")
ãåŒã³åºãããšã§ããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã«é©çšãããããŒãžã§ã³ãæŽæ°ãããŸãã
2.5 ã¯ã©ã¹ã¡ãœããã䜿ã£ãã€ã³ã¹ã¿ã³ã¹ã®äœæïŒãã¡ã¯ããªã¡ãœããïŒ
ã¯ã©ã¹ã¡ãœããã¯ãæ°ããã€ã³ã¹ã¿ã³ã¹ãäœæããããã®ãã¡ã¯ããªã¡ãœãããšããŠã掻çšãããŸãã
class User:
def __init__(self, name):
self.name = name
@classmethod
def from_string(cls, name_str):
return cls(name_str) # clsã䜿ã£ãŠæ°ããã€ã³ã¹ã¿ã³ã¹ãäœæ
# ã¯ã©ã¹ã¡ãœããã䜿ã£ãŠã€ã³ã¹ã¿ã³ã¹ãäœæ
user = User.from_string("äœè€")
print(user.name) # äœè€
解説
from_string()
ã¡ãœããã¯cls(name_str)
ãåŒã³åºãããšã§ãæ°ããã€ã³ã¹ã¿ã³ã¹ãäœæããŠããŸãã- ããã«ãããéåžžã®
User("äœè€")
ã®ãããªçŽæ¥çãªã€ã³ã¹ã¿ã³ã¹åãšåãçµæã«ãªããŸãããããŒã¿ã®ååŠçãæãããšãå¯èœã«ãªããŸãã
2.6 ã€ã³ã¹ã¿ã³ã¹ã¡ãœãããšã®éã
éåžžã®ã€ã³ã¹ã¿ã³ã¹ã¡ãœãããšã¯ã©ã¹ã¡ãœãããæ¯èŒãããšã以äžã®ãããªéãããããŸãã
ã¡ãœããã®çš®é¡ | 第äžåŒæ° | åŒã³åºãæ¹æ³ | 圱é¿ãäžããç¯å² |
---|---|---|---|
ã€ã³ã¹ã¿ã³ã¹ã¡ãœãã | self | instance.method() | ç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ |
ã¯ã©ã¹ã¡ãœãã | cls | Class.method() ãŸã㯠instance.method() | ã¯ã©ã¹å šäœ |
ã¹ã¿ãã£ãã¯ã¡ãœãã | ãªã | Class.method() | ç¬ç«ãã颿°ã®ããã«æ¯ãèã |
ã¯ã©ã¹ã¡ãœããã¯ãã€ã³ã¹ã¿ã³ã¹ã«äŸåãããã¯ã©ã¹å šäœã«é¢ããæäœãè¡ãããã«äœ¿ãã®ãé©åã§ãã
2.7 ã¯ã©ã¹ã¡ãœããã®äœ¿ãã©ãã
ã¯ã©ã¹ã¡ãœããã¯ã次ã®ãããªå Žé¢ã§åœ¹ç«ã¡ãŸãã
â ã¯ã©ã¹ã¬ãã«ã®ããŒã¿ã管çãã
- èšå®å€ãã«ãŠã³ã¿ãŒã®æŽæ°
- äŸïŒ
Config.update_version()
â ãã¡ã¯ããªã¡ãœãããšããŠæŽ»çšãã
- ç¹å®ã®ãã©ãŒãããããã€ã³ã¹ã¿ã³ã¹ãäœæ
- äŸïŒ
User.from_string()
â ç¶æ¿ããã¯ã©ã¹ã§ãé©çšã§ãã
cls
ã䜿ãããšã§ãç¶æ¿ããã¯ã©ã¹ã«ãé©çšå¯èœ
class Base:
@classmethod
def show_class_name(cls):
print(f"ã¯ã©ã¹å: {cls.__name__}")
class Derived(Base):
pass
Derived.show_class_name() # ã¯ã©ã¹å: Derived
ãã®ããã«ã芪ã¯ã©ã¹ã®ã¯ã©ã¹ã¡ãœãããç¶æ¿ããŠäœ¿ãããšãå¯èœã§ãã
2.8 ãŸãšã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãPythonã®ã¯ã©ã¹ã¡ãœããã®å®çŸ©æ¹æ³ãšäœ¿ãæ¹ã«ã€ããŠè§£èª¬ããŸããããã€ã³ããæ¯ãè¿ããŸãããã
@classmethod
ã䜿ã£ãŠã¯ã©ã¹ã¡ãœãããå®çŸ©ããcls
ã䜿ãããšã§ãã¯ã©ã¹å€æ°ãã¯ã©ã¹ã®æäœãå¯èœ- ã¯ã©ã¹ã¡ãœããã¯ãã€ã³ã¹ã¿ã³ã¹ãäœæããã«çŽæ¥åŒã³åºãã
- ãã¡ã¯ããªã¡ãœãããšããŠã€ã³ã¹ã¿ã³ã¹çæã«ã掻çšã§ãã
- ã¯ã©ã¹ã¡ãœããã¯ã¯ã©ã¹å šäœã«åœ±é¿ãäžããããžãã¯ã«æé©

3. Python ã¯ã©ã¹ã¡ãœããã®æŽ»çšäŸïŒå®è·µçãªãŠãŒã¹ã±ãŒã¹ïŒ
ãããŸã§ã®ã»ã¯ã·ã§ã³ã§ãPythonã®ã¯ã©ã¹ã¡ãœããã®åºæ¬ãšãã®äœ¿ãæ¹ãåŠã³ãŸããã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã¯ã©ã¹ã¡ãœãããå®éã«ã©ã®ããã«äœ¿ãããã®ã ããå
·äœçãªãŠãŒã¹ã±ãŒã¹ãéããŠè§£èª¬ããŠãããŸãã
3.1 ã¯ã©ã¹ã¡ãœããã®ä»£è¡šçãªæŽ»çšãã¿ãŒã³
ã¯ã©ã¹ã¡ãœããã¯ã以äžã®ãããªå Žé¢ã§ç¹ã«æå¹ã«æŽ»çšãããŸãã
- ãã¡ã¯ããªã¡ãœãããšããŠã®å©çš
- èšå®å€ãå ±éããŒã¿ã®ç®¡ç
- ã¯ã©ã¹ã®ç¶æ ã倿Žããã¡ãœãã
- ç¶æ¿ã掻ãããã¯ã©ã¹ã®åçãªå©çš
- ããŒã¿ããŒã¹æ¥ç¶ã管çã®ç°¡ç¥å
ããããã®ã±ãŒã¹ã«ã€ããŠãã³ãŒãäŸã亀ããªãã詳ããèŠãŠãããŸãããã
3.2 ãŠãŒã¹ã±ãŒã¹â ïŒãã¡ã¯ããªã¡ãœãããšããŠå©çš
ãã¡ã¯ããªã¡ãœãããšã¯ãç¹å®ã®ãã©ãŒãããã®ããŒã¿ãå ã«ãæ°ããã€ã³ã¹ã¿ã³ã¹ãçæããããã®ã¡ãœãã ã§ãã
äŸãã°ã以äžã®ãããªã±ãŒã¹ãèããŸãã
æååããŒã¿ãã User
ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæãã
class User:
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def from_string(cls, user_info):
name, age = user_info.split(",") # ã«ã³ãåºåãã®æååãåå²
return cls(name, int(age)) # æ°ããã€ã³ã¹ã¿ã³ã¹ãäœæ
# ã¯ã©ã¹ã¡ãœããã䜿ã£ãŠã€ã³ã¹ã¿ã³ã¹ãäœæ
user = User.from_string("äœè€,30")
print(user.name) # äœè€
print(user.age) # 30
ãã®æ¹æ³ã®ã¡ãªãã
- ããŒã¿ã®ååŠçãäžå 管ç ã§ãã
- ã³ãŒãã®å¯èªæ§ãåäž ããæè»ãªã€ã³ã¹ã¿ã³ã¹çæãå¯èœã«ãªã
- ç°ãªãããŒã¿ãã©ãŒãããã«ã察å¿ãããã
äŸãã°ãJSONãCSVããŒã¿ãæ±ãéã«ãããã®ãã¿ãŒã³ãå¿çšã§ããŸãã
3.3 ãŠãŒã¹ã±ãŒã¹â¡ïŒèšå®å€ãå ±éããŒã¿ã®ç®¡ç
ã¢ããªã±ãŒã·ã§ã³å šäœã§å ±æããèšå®å€ãã倿Žå¯èœãªããã©ã«ãå€ã管çããéã«ã¯ã©ã¹ã¡ãœãããå©çšãããšäŸ¿å©ã§ãã
class Config:
default_language = "Japanese"
default_theme = "Light"
@classmethod
def update_language(cls, new_language):
cls.default_language = new_language # ã¯ã©ã¹å€æ°ãæŽæ°
@classmethod
def update_theme(cls, new_theme):
cls.default_theme = new_theme
# ã¯ã©ã¹ã¡ãœããã䜿ã£ãŠèšå®ã倿Ž
Config.update_language("English")
Config.update_theme("Dark")
print(Config.default_language) # English
print(Config.default_theme) # Dark
ãã®æ¹æ³ã®ã¡ãªãã
- ã¢ããªå šäœã§ äžè²«ããèšå®ãç¶æ ã§ãã
- åå¥ã®ã€ã³ã¹ã¿ã³ã¹ããšã§ã¯ãªããã¯ã©ã¹ã¬ãã«ã§å€æŽãé©çšã§ãã
3.4 ãŠãŒã¹ã±ãŒã¹â¢ïŒã¯ã©ã¹ã®ç¶æ ã倿Žããã¡ãœãã
ã¯ã©ã¹ã¡ãœããã䜿ã£ãŠãã¯ã©ã¹ã®ç¶æ ïŒäŸãã°ãã€ã³ã¹ã¿ã³ã¹ã®ç·æ°ãªã©ïŒã管çããããšãã§ããŸãã
class Counter:
count = 0 # ã¯ã©ã¹å€æ°ïŒå
šã€ã³ã¹ã¿ã³ã¹å
±éïŒ
def __init__(self):
Counter.increment_count()
@classmethod
def increment_count(cls):
cls.count += 1 # ã¯ã©ã¹å€æ°ã倿Ž
# ã€ã³ã¹ã¿ã³ã¹ãçæãããšã«ãŠã³ã¿ãŒãå¢å
c1 = Counter()
c2 = Counter()
c3 = Counter()
print(Counter.count) # 3
ãã®æ¹æ³ã®ã¡ãªãã
- ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã«å¯Ÿã㊠統äžçãªããŒã¿ã管çã§ãã
- ã¯ã©ã¹ã¡ãœããã䜿ãããšã§ãæ°ããã€ã³ã¹ã¿ã³ã¹ã®äœæãç£èŠã§ãã
3.5 ãŠãŒã¹ã±ãŒã¹â£ïŒç¶æ¿ã掻ãããã¯ã©ã¹ã®åçãªå©çš
ã¯ã©ã¹ã¡ãœããã¯ç¶æ¿ããã¯ã©ã¹ã§ãé©çšãããããã芪ã¯ã©ã¹ã®ã¯ã©ã¹ã¡ãœãããåçã«ãªãŒããŒã©ã€ãããããšãå¯èœã§ãã
class Animal:
species = "Unknown"
@classmethod
def set_species(cls, new_species):
cls.species = new_species
class Dog(Animal):
pass
class Cat(Animal):
pass
# ã¯ã©ã¹ããšã«ç°ãªãèšå®ãå¯èœ
Dog.set_species("Canine")
Cat.set_species("Feline")
print(Dog.species) # Canine
print(Cat.species) # Feline
print(Animal.species) # UnknownïŒèŠªã¯ã©ã¹ã®å€ã¯å€ãããªãïŒ
ãã®æ¹æ³ã®ã¡ãªãã
- ç¶æ¿é¢ä¿ãèæ ®ããæè»ãªããŒã¿ç®¡çãå¯èœ
- 芪ã¯ã©ã¹ã®ã¡ãœããããã®ãŸãŸåå©çšã§ãããããã³ãŒãã®éè€ãé²ãã
3.6 ãŠãŒã¹ã±ãŒã¹â€ïŒããŒã¿ããŒã¹æ¥ç¶ã管çã®ç°¡ç¥å
Webã¢ããªã±ãŒã·ã§ã³ãããã¯ãšã³ãéçºã§ã¯ãã¯ã©ã¹ã¡ãœãããæŽ»çšããããšã§ãããŒã¿ããŒã¹æ¥ç¶ãããŒã¿ç®¡çã®åŠçãçµ±äžã§ããŸãã
class Database:
connection = None
@classmethod
def connect(cls, db_url):
if cls.connection is None:
cls.connection = f"Connected to {db_url}"
return cls.connection
# ããŒã¿ããŒã¹ã«æ¥ç¶
db1 = Database.connect("mysql://localhost:3306/mydb")
db2 = Database.connect("mysql://localhost:3306/mydb")
print(db1) # Connected to mysql://localhost:3306/mydb
print(db1 is db2) # TrueïŒåãæ¥ç¶ãåå©çšïŒ
ãã®æ¹æ³ã®ã¡ãªãã
- ããŒã¿ããŒã¹æ¥ç¶ã®ç®¡çãçµ±äž
- è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ã§åãæ¥ç¶ãå ±æã§ããïŒSingletonãã¿ãŒã³ïŒ
3.7 ãŸãšã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã¯ã©ã¹ã¡ãœããã®å®è·µçãªæŽ»çšäŸã玹ä»ããŸããã
äž»ãªãã€ã³ã
- ãã¡ã¯ããªã¡ãœãããšããŠå©çšããããŒã¿ã®ååŠçãã€ã³ã¹ã¿ã³ã¹çæãç°¡æœã«
- èšå®å€ãå ±éããŒã¿ãã¯ã©ã¹å€æ°ãšããŠç®¡çãã倿Žã容æã«
- ã¯ã©ã¹ã®ç¶æ ã倿Žããã¯ã©ã¹ã¡ãœãããçšããŠãã€ã³ã¹ã¿ã³ã¹æ°ãªã©ã®ç®¡çãç°¡ç¥å
- ã¯ã©ã¹ã®ç¶æ¿é¢ä¿ã掻ãããŠã芪ã¯ã©ã¹ã®ã¯ã©ã¹ã¡ãœãããåçã«é©çš
- ããŒã¿ããŒã¹æ¥ç¶ç®¡çãªã©ã®çšéã§ã掻çšå¯èœ
4. ã¯ã©ã¹ã¡ãœãããšä»ã®ã¡ãœããã®éãïŒæ¯èŒè¡šä»ãïŒ
Pythonã®ã¯ã©ã¹ã¡ãœãããçè§£ããäžã§éèŠãªã®ã¯ãã€ã³ã¹ã¿ã³ã¹ã¡ãœãããã¹ã¿ãã£ãã¯ã¡ãœãããšã®éããæç¢ºã«ããããšã§ãã
ããããã®ã¡ãœããã«ã¯ç°ãªã圹å²ããããé©åã«äœ¿ãåããããšã§ãããå¹ççãªã³ãŒããæžãããšãã§ããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã¯ã©ã¹ã¡ãœãããšä»ã®ã¡ãœããã®éããæ¯èŒããªãã解説ããŠãããŸãã
4.1 Pythonã®3çš®é¡ã®ã¡ãœãã
Pythonã®ã¯ã©ã¹å ã§å®çŸ©ã§ããã¡ãœããã«ã¯ã次ã®3çš®é¡ããããŸãã
ã¡ãœããã®çš®é¡ | ãã³ã¬ãŒã¿ | 第äžåŒæ° | ã¯ã©ã¹å€æ°ãžã®ã¢ã¯ã»ã¹ | ã€ã³ã¹ã¿ã³ã¹å€æ°ãžã®ã¢ã¯ã»ã¹ | åŒã³åºãæ¹æ³ |
---|---|---|---|---|---|
ã€ã³ã¹ã¿ã³ã¹ã¡ãœãã | ãªã | self | å¯èœ | å¯èœ | instance.method() |
ã¯ã©ã¹ã¡ãœãã | @classmethod | cls | å¯èœ | äžå¯ | Class.method() ãŸã㯠instance.method() |
ã¹ã¿ãã£ãã¯ã¡ãœãã | @staticmethod | ãªã | äžå¯ | äžå¯ | Class.method() ãŸã㯠instance.method() |
ãã®è¡šãããšã«ãããããã®ã¡ãœããã®éãã詳ããèŠãŠãããŸãããã
4.2 ã€ã³ã¹ã¿ã³ã¹ã¡ãœãããšã¯ïŒ
ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã¯ãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ïŒãªããžã§ã¯ãïŒããšã«ç°ãªãåäœãå®è£
ããããã®ã¡ãœããã§ããself
ã第äžåŒæ°ã«ãšããã€ã³ã¹ã¿ã³ã¹å€æ°ïŒå±æ§ïŒãæäœã§ããŸãã
ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã®äŸ
class Dog:
def __init__(self, name):
self.name = name # ã€ã³ã¹ã¿ã³ã¹å€æ°
def bark(self):
return f"{self.name} ãå ããŠããŸãïŒ"
# ã€ã³ã¹ã¿ã³ã¹ãäœæ
dog1 = Dog("ãã")
dog2 = Dog("ã·ã")
print(dog1.bark()) # ãã ãå ããŠããŸãïŒ
print(dog2.bark()) # ã·ã ãå ããŠããŸãïŒ
ãã€ã³ã
â
self
ã䜿ã£ãŠãåã€ã³ã¹ã¿ã³ã¹åºæã®ããŒã¿ãæ±ã
â
ã€ã³ã¹ã¿ã³ã¹ãäœæããªããšã¡ãœãããåŒã³åºããªã
4.3 ã¯ã©ã¹ã¡ãœãããšã¯ïŒ
ã¯ã©ã¹ã¡ãœããã¯ãã¯ã©ã¹å
šäœã«é¢ããæäœãè¡ãã¡ãœããã§ããcls
ã第äžåŒæ°ã«ãšãããšã§ãã¯ã©ã¹å€æ°ãçŽæ¥å€æŽã»åç
§ã§ããŸãã
ã¯ã©ã¹ã¡ãœããã®äŸ
class Cat:
species = "ãã³ç§"
def __init__(self, name):
self.name = name
@classmethod
def set_species(cls, new_species):
cls.species = new_species # ã¯ã©ã¹å€æ°ã倿Ž
# ã¯ã©ã¹ã¡ãœããã䜿ã£ãŠã¯ã©ã¹å€æ°ã倿Ž
Cat.set_species("Felidae")
# ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã«å€æŽãåæ ããã
cat1 = Cat("ãã±")
cat2 = Cat("ã¿ã")
print(cat1.species) # Felidae
print(cat2.species) # Felidae
print(Cat.species) # Felidae
ãã€ã³ã
â
cls
ã䜿ã£ãŠã¯ã©ã¹å€æ°ãæäœã§ãã
â
ã¯ã©ã¹å
šäœã«é¢ããåŠçãå®è£
ããéã«äŸ¿å©
â
ã€ã³ã¹ã¿ã³ã¹ãäœããã« Class.method()
ã§çŽæ¥åŒã³åºãã
4.4 ã¹ã¿ãã£ãã¯ã¡ãœãããšã¯ïŒ
ã¹ã¿ãã£ãã¯ã¡ãœããïŒéçã¡ãœããïŒã¯ãã¯ã©ã¹ã«ãã€ã³ã¹ã¿ã³ã¹ã«ãäŸåããªãæ±çšçãªé¢æ°ãã¯ã©ã¹ã®äžã«å®çŸ©ããããã«äœ¿ãããŸãã
第äžåŒæ°ãšã㊠self
ã cls
ãåãåãããã¯ã©ã¹å€æ°ãã€ã³ã¹ã¿ã³ã¹å€æ°ã«ã¢ã¯ã»ã¹ã§ããŸããã
ã¹ã¿ãã£ãã¯ã¡ãœããã®äŸ
class MathHelper:
@staticmethod
def add(x, y):
return x + y
@staticmethod
def multiply(x, y):
return x * y
# ã¹ã¿ãã£ãã¯ã¡ãœããã¯ã€ã³ã¹ã¿ã³ã¹ãäœããªããŠãåŒã³åºãã
print(MathHelper.add(3, 5)) # 8
print(MathHelper.multiply(4, 6)) # 24
ãã€ã³ã
â
ã¯ã©ã¹å€æ°ãã€ã³ã¹ã¿ã³ã¹å€æ°ã䜿ããªã颿°ãå®çŸ©ããéã«äŸ¿å©
â
åãªã颿°ãšåãããã«äœ¿ããããã¯ã©ã¹å
ã«æŽçã§ãã
â
ã€ã³ã¹ã¿ã³ã¹ãäœæããã«åŒã³åºããïŒClass.method()
ïŒ
4.5 ã©ã®ã¡ãœããã䜿ãã¹ããïŒ
é©åãªã¡ãœãããéžæããããã®åºæºãæŽçãããšã次ã®ããã«ãªããŸãã
ã¡ãœããã®çš®é¡ | ãããªå Žåã«äœ¿ã |
---|---|
ã€ã³ã¹ã¿ã³ã¹ã¡ãœãã | ã€ã³ã¹ã¿ã³ã¹ããšã«ç°ãªãããŒã¿ãæ±ãå ŽåïŒäŸïŒself.name ãæäœïŒ |
ã¯ã©ã¹ã¡ãœãã | ã¯ã©ã¹å šäœã«é¢ããåŠçãè¡ãå ŽåïŒäŸïŒã¯ã©ã¹å€æ°ã倿ŽããïŒ |
ã¹ã¿ãã£ãã¯ã¡ãœãã | ã¯ã©ã¹ã«é¢é£ããæ±çšé¢æ°ãå®çŸ©ãããå ŽåïŒäŸïŒæ°åŠæŒç®ãããŒã¿å€æïŒ |
4.6 ãŸãšã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã¯ã©ã¹ã¡ãœãããšä»ã®ã¡ãœããïŒã€ã³ã¹ã¿ã³ã¹ã¡ãœãããã¹ã¿ãã£ãã¯ã¡ãœããïŒã®éãã«ã€ããŠè§£èª¬ããŸããã
ãã€ã³ãã®åŸ©ç¿
- ã€ã³ã¹ã¿ã³ã¹ã¡ãœãã
self
ã第äžåŒæ°ã«åããã€ã³ã¹ã¿ã³ã¹å€æ°ãæäœãã- ã€ã³ã¹ã¿ã³ã¹ããšã«ç°ãªãããŒã¿ã管çããå Žåã«é©ãã
- ã¯ã©ã¹ã¡ãœãã
cls
ã第äžåŒæ°ã«åããã¯ã©ã¹å€æ°ãæäœãã- ã¯ã©ã¹å šäœã«é¢ããããŒã¿ã®ç®¡çãèšå®å€æŽã«é©ãã
- ã¹ã¿ãã£ãã¯ã¡ãœãã
self
ãcls
ãåãåãããã¯ã©ã¹ãã€ã³ã¹ã¿ã³ã¹ã«äŸåããªãåŠçãè¡ã- ã¯ã©ã¹ã«é¢é£ããããç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ãã¯ã©ã¹å€æ°ã«åœ±é¿ãäžããªã颿°ã«é©ãã
5. Python ã¯ã©ã¹ã¡ãœããã®ããããçåïŒFAQïŒ
Pythonã®ã¯ã©ã¹ã¡ãœãããåŠã¶äžã§ãå€ãã®äººãçåã«æãç¹ããããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã¯ã©ã¹ã¡ãœããã«é¢ãããããã質åãšãã®åçãåããããã解説ããŸãã
5.1 ã¯ã©ã¹ã¡ãœããã®åºæ¬ã«é¢ãã質å
Q1. ã¯ã©ã¹ã¡ãœããã¯ãã€äœ¿ãã¹ãã§ããïŒ
A. ã¯ã©ã¹ã¡ãœããã¯ãã¯ã©ã¹å
šäœã«åœ±é¿ãäžããåŠçãèšè¿°ããéã«äœ¿çšããŸãã
ç¹ã«ã以äžã®ãããªå Žåã«äŸ¿å©ã§ãã
â
ã¯ã©ã¹å€æ°ã倿Žããããšã
â
ãã¡ã¯ããªã¡ãœãããäœæããç¹å®ã®åœ¢åŒã®ããŒã¿ããã€ã³ã¹ã¿ã³ã¹ãçæããããšã
â
ã¯ã©ã¹ã®ç¶æ
ã管çããããšãïŒã«ãŠã³ã¿ãŒãèšå®å€ã®ç®¡çãªã©ïŒ
Q2. ã¯ã©ã¹ã¡ãœãããšã€ã³ã¹ã¿ã³ã¹ã¡ãœããã®éãã¯äœã§ããïŒ
A. ã¯ã©ã¹ã¡ãœãã㯠@classmethod
ã䜿ãã第äžåŒæ°ã« cls
ãåãåããŸãã
äžæ¹ãã€ã³ã¹ã¿ã³ã¹ã¡ãœãã㯠self
ã第äžåŒæ°ã«ãšããŸãã
ã¡ãœããã®çš®é¡ | 第äžåŒæ° | ã¯ã©ã¹å€æ°ãžã®ã¢ã¯ã»ã¹ | ã€ã³ã¹ã¿ã³ã¹å€æ°ãžã®ã¢ã¯ã»ã¹ |
---|---|---|---|
ã€ã³ã¹ã¿ã³ã¹ã¡ãœãã | self | å¯èœ | å¯èœ |
ã¯ã©ã¹ã¡ãœãã | cls | å¯èœ | äžå¯ |
äŸïŒæ¯èŒïŒ
class Sample:
class_variable = "ã¯ã©ã¹å€æ°"
def __init__(self, name):
self.name = name # ã€ã³ã¹ã¿ã³ã¹å€æ°
def instance_method(self):
return f"ã€ã³ã¹ã¿ã³ã¹å€æ°: {self.name}"
@classmethod
def class_method(cls):
return f"ã¯ã©ã¹å€æ°: {cls.class_variable}"
# ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã¯ã€ã³ã¹ã¿ã³ã¹çµç±ã§åŒã³åºã
s = Sample("倪é")
print(s.instance_method()) # ã€ã³ã¹ã¿ã³ã¹å€æ°: 倪é
# ã¯ã©ã¹ã¡ãœããã¯ã¯ã©ã¹ããçŽæ¥åŒã³åºãã
print(Sample.class_method()) # ã¯ã©ã¹å€æ°: ã¯ã©ã¹å€æ°
Q3. ã¯ã©ã¹ã¡ãœããããã€ã³ã¹ã¿ã³ã¹å€æ°ã«ã¢ã¯ã»ã¹ã§ããŸããïŒ
A. ã§ããŸããã
ã¯ã©ã¹ã¡ãœããã¯ãã€ã³ã¹ã¿ã³ã¹å€æ° (self.attribute
) ã§ã¯ãªããã¯ã©ã¹å€æ° (cls.attribute
) ã«ã¢ã¯ã»ã¹ããããã®ãã®ã§ãã
ã€ã³ã¹ã¿ã³ã¹å€æ°ãæäœããå Žåã¯ãã€ã³ã¹ã¿ã³ã¹ã¡ãœããã䜿çšããå¿
èŠããããŸãã
5.2 ã¯ã©ã¹ã¡ãœãããšã¹ã¿ãã£ãã¯ã¡ãœããã«é¢ãã質å
Q4. ã¯ã©ã¹ã¡ãœãããšã¹ã¿ãã£ãã¯ã¡ãœããã®éãã¯ïŒ
A. ã¯ã©ã¹ã¡ãœãã (@classmethod
) 㯠cls
ãåãåããã¯ã©ã¹å€æ°ãæäœã§ããŸãã
äžæ¹ãã¹ã¿ãã£ãã¯ã¡ãœãã (@staticmethod
) 㯠self
ã cls
ãåãåãããã¯ã©ã¹ã«ãã€ã³ã¹ã¿ã³ã¹ã«ãäŸåããŸããã
ã¡ãœããã®çš®é¡ | 第äžåŒæ° | ã¯ã©ã¹å€æ°ã«ã¢ã¯ã»ã¹ | ã€ã³ã¹ã¿ã³ã¹å€æ°ã«ã¢ã¯ã»ã¹ |
---|---|---|---|
ã¯ã©ã¹ã¡ãœãã | cls | å¯èœ | äžå¯ |
ã¹ã¿ãã£ãã¯ã¡ãœãã | ãªã | äžå¯ | äžå¯ |
äŸïŒæ¯èŒïŒ
class Example:
class_variable = "ã¯ã©ã¹å€æ°"
@classmethod
def class_method(cls):
return f"ã¯ã©ã¹å€æ°ã®å€: {cls.class_variable}"
@staticmethod
def static_method():
return "ã¹ã¿ãã£ãã¯ã¡ãœããã¯ã¯ã©ã¹å€æ°ãæ±ããªã"
# ã¯ã©ã¹ã¡ãœãã
print(Example.class_method()) # ã¯ã©ã¹å€æ°ã®å€: ã¯ã©ã¹å€æ°
# ã¹ã¿ãã£ãã¯ã¡ãœãã
print(Example.static_method()) # ã¹ã¿ãã£ãã¯ã¡ãœããã¯ã¯ã©ã¹å€æ°ãæ±ããªã
Q5. ã©ããªæã«ã¹ã¿ãã£ãã¯ã¡ãœããã䜿ãã¹ãã§ããïŒ
A. ã¹ã¿ãã£ãã¯ã¡ãœããã¯ãã¯ã©ã¹ã«ãã€ã³ã¹ã¿ã³ã¹ã«ãäŸåããªãæ±çšçãªé¢æ°ãå®çŸ©ãããšãã«äœ¿ããŸãã
äŸãã°ãæ°åŠæŒç®ãããŒã¿ãã©ãŒãããã®å€æåŠçãªã©ãæããããŸãã
class MathUtils:
@staticmethod
def add(a, b):
return a + b
print(MathUtils.add(3, 7)) # 10
5.3 ã¯ã©ã¹ã¡ãœããã®å®è·µçãªçå
Q6. ã¯ã©ã¹ã¡ãœããã䜿ã£ãŠã€ã³ã¹ã¿ã³ã¹ãäœæã§ããŸããïŒ
A. å¯èœã§ãã
ã¯ã©ã¹ã¡ãœããã¯ãã¡ã¯ããªã¡ãœãããšããŠå©çšã§ããå€éšããŒã¿ïŒæååã»JSONã»ããŒã¿ããŒã¹æ
å ±ãªã©ïŒããã€ã³ã¹ã¿ã³ã¹ãäœæããéã«äŸ¿å©ã§ãã
class User:
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def from_string(cls, user_data):
name, age = user_data.split(",")
return cls(name, int(age))
# æååããã€ã³ã¹ã¿ã³ã¹ãäœæ
user = User.from_string("äœè€,30")
print(user.name) # äœè€
print(user.age) # 30
Q7. Pythonã®ããŒãžã§ã³ã«ãã£ãŠã¯ã©ã¹ã¡ãœããã®äœ¿ãæ¹ã¯å€ãããŸããïŒ
A. åºæ¬çãªäœ¿ãæ¹ã¯å€ãããŸããã
Python 2.x ã§ã¯ @classmethod
ã®ä»£ããã« classmethod()
ã䜿ãããšããããŸããããPython 3.x 以éã§ã¯ @classmethod
ãæšå¥š ããŠããŸãã
ãŸããPython 3.9 以éã§ã¯ãåãã³ãïŒType HintingïŒã掻çšããèšè¿°ãå¯èœã§ãã
class Sample:
class_variable: str = "ã¯ã©ã¹å€æ°"
@classmethod
def get_class_variable(cls) -> str:
return cls.class_variable
5.4 ãŸãšã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã¯ã©ã¹ã¡ãœããã«é¢ãããããã質åãšãã®åçã玹ä»ããŸããã
äž»ãªãã€ã³ã
- ã¯ã©ã¹ã¡ãœããã¯ã¯ã©ã¹å šäœã管çããã®ã«é©ããŠãã
- ã¯ã©ã¹ã¡ãœããããã€ã³ã¹ã¿ã³ã¹å€æ°ã«ã¢ã¯ã»ã¹ããããšã¯ã§ããªã
- ã¯ã©ã¹ã¡ãœãããšã¹ã¿ãã£ãã¯ã¡ãœããã®éããçè§£ããé©åã«äœ¿ãåãã
- ãã¡ã¯ããªã¡ãœãããšããŠãããŒã¿ããã€ã³ã¹ã¿ã³ã¹ãäœæã§ãã
- Pythonã®ããŒãžã§ã³ã«ãã£ãŠåºæ¬çãªäœ¿ãæ¹ã¯å€ãããªãããåãã³ãã®æŽ»çšãå¯èœ
6. ãŸãšãïŒã¯ã©ã¹ã¡ãœããã®çè§£ãæ·±ãããïŒ
ãããŸã§ãPythonã®ã¯ã©ã¹ã¡ãœããã«ã€ããŠåºæ¬çãªæŠå¿µããå®è·µçãªæŽ»çšæ¹æ³ãŸã§è©³ãã解説ããŠããŸããã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ããããŸã§ã®å
å®¹ãæ¯ãè¿ããã¯ã©ã¹ã¡ãœããã®çè§£ãããã«æ·±ããããã®ãã€ã³ããæŽçããŸãã
6.1 ã¯ã©ã¹ã¡ãœããã®èŠç¹ãŸãšã
Pythonã®ã¯ã©ã¹ã¡ãœããã«ã€ããŠåŠãã äž»ãªãã€ã³ãã¯æ¬¡ã®ãšããã§ãã
â ã¯ã©ã¹ã¡ãœããã®åºæ¬
@classmethod
ãã³ã¬ãŒã¿ã䜿ã£ãŠå®çŸ©ãã- 第äžåŒæ°ãšããŠ
cls
ãåãåããã¯ã©ã¹å šäœãåç §ã»å€æŽã§ãã - ã€ã³ã¹ã¿ã³ã¹ãäœæããã«
Class.method()
ã§åŒã³åºãã
â ã¯ã©ã¹ã¡ãœããã®å®è·µçãªäœ¿ãæ¹
- ãã¡ã¯ããªã¡ãœãããšããŠæŽ»çš
â æååãJSONããŒã¿ããã€ã³ã¹ã¿ã³ã¹ãçæ - èšå®å€ãã¯ã©ã¹å€æ°ã®ç®¡ç
âConfig.update_language()
ã®ããã«ã¢ããªå šäœã®èšå®ãå€æŽ - ã¯ã©ã¹å
šäœã®ç¶æ
管ç
â ã€ã³ã¹ã¿ã³ã¹ã®ç·æ°ãããŒãžã§ã³ç®¡çã«å©çš - ç¶æ¿ã掻ãããåçãªã¯ã©ã¹èšèš
â åã¯ã©ã¹ããšã«ç°ãªãåäœãæããã
â ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã»ã¹ã¿ãã£ãã¯ã¡ãœãããšã®éã
ã¡ãœããã®çš®é¡ | ãã³ã¬ãŒã¿ | 第äžåŒæ° | ã¯ã©ã¹å€æ°ã¢ã¯ã»ã¹ | ã€ã³ã¹ã¿ã³ã¹å€æ°ã¢ã¯ã»ã¹ | åŒã³åºãæ¹æ³ |
---|---|---|---|---|---|
ã€ã³ã¹ã¿ã³ã¹ã¡ãœãã | ãªã | self | å¯èœ | å¯èœ | instance.method() |
ã¯ã©ã¹ã¡ãœãã | @classmethod | cls | å¯èœ | äžå¯ | Class.method() ãŸã㯠instance.method() |
ã¹ã¿ãã£ãã¯ã¡ãœãã | @staticmethod | ãªã | äžå¯ | äžå¯ | Class.method() ãŸã㯠instance.method() |
6.2 ã¯ã©ã¹ã¡ãœããã䜿ãã¹ãã±ãŒã¹
Pythonã®ã¯ã©ã¹ã¡ãœãããé©åã«äœ¿ãåããããšã§ãã³ãŒãã®å¯èªæ§ã管çã®ãããããåäžããŸãã
以äžã®ãããªå Žé¢ã§ã¯ãã¯ã©ã¹ã¡ãœãããç©æ¥µçã«æŽ»çšããã®ãè¯ãã§ãããã
ð ã€ã³ã¹ã¿ã³ã¹ã®äœææ¹æ³ãçµ±äžããã
â from_string()
ãªã©ã®ãã¡ã¯ããªã¡ãœãããå®è£
ããããšã§ãçµ±äžçãªã€ã³ã¹ã¿ã³ã¹äœæãå¯èœ
ð ã¯ã©ã¹å€æ°ãæäœããã¡ãœãããäœããã
â èšå®å€ã®æŽæ° (Config.update_theme()
) ãªã©ã«æŽ»çš
ð 芪ã¯ã©ã¹ã®æ©èœãåã¯ã©ã¹ã§æŽ»çšããã
â cls
ã䜿ãããšã§ãç¶æ¿é¢ä¿ã§ãé©åã«åäœ
6.3 ã¯ã©ã¹ã¡ãœãããæ·±ãçè§£ããããã«
ã¯ã©ã¹ã¡ãœããã®çè§£ãããã«æ·±ããããã«ã次ã®ãããªæ¹æ³ã詊ããŠã¿ãŸãããã
1ïžâ£ å®éã«ã³ãŒããæžããŠè©Šã
â ã¯ã©ã¹ã¡ãœããã䜿ã£ãç°¡åãªã¯ã©ã¹ãäœæããåäœã確èªããŠã¿ã
2ïžâ£ ä»ã®ãããžã§ã¯ãã§ã®æŽ»çšäŸã調ã¹ã
â DjangoãFlaskãªã©ã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ãã¯ã©ã¹ã¡ãœããããã䜿ãããŠãã
3ïžâ£ ã¹ã¿ãã£ãã¯ã¡ãœãããã€ã³ã¹ã¿ã³ã¹ã¡ãœãããšæ¯èŒããªããèãã
â ã©ã®å Žé¢ã§ã©ã®ã¡ãœããã䜿ãã®ãé©åããæèããªããèšèšããŠã¿ã
6.4 ãŸãšã
ãã®èšäºã§ã¯ãPythonã®ã¯ã©ã¹ã¡ãœããã«ã€ããŠè©³çްã«è§£èª¬ããŸããã
â ã¯ã©ã¹ã¡ãœããã®åºæ¬ãšåœ¹å²ãçè§£ããã
â å®è·µçãªæŽ»çšæ¹æ³ãåŠã³ãé©åãªå Žé¢ã§äœ¿ãã
â ã€ã³ã¹ã¿ã³ã¹ã¡ãœããã»ã¹ã¿ãã£ãã¯ã¡ãœãããšã®éããææ¡ãã䜿ãåããæèããã
Pythonã®ã¯ã©ã¹ã¡ãœãããé©åã«äœ¿ãããªããããã«ãªããšãããå¹ççã§ç®¡çããããã³ãŒããèšè¿°ã§ããããã«ãªããŸãã
ãã²ãä»ååŠãã ããšãå®éã®ããã°ã©ã ã«å¿çšããŠã¿ãŠãã ããïŒ