Pythonã§é¢æ°ãæžããŠããŠãåŒã³åºããã³ã«åŒæ°ã®æ°ãå€ãã£ãã䟿å©ãªã®ã«âŠããšæã£ãçµéšã¯ãããŸãããïŒå®ã¯Pythonã«ã¯ãåŒæ°ã®æ°ãåºå®ããã奜ããªã ãæž¡ããå¯å€é·åŒæ°ãšããä»çµã¿ãçšæãããŠããŸãâš
ããã䜿ãããªããããã«ãªããšã颿°ã®æ±çšæ§ãäžæ°ã«é«ãŸããã³ãŒãã®éè€ããã£ãšæžãããŸããããã«ãæ¯æ¥äœæ°ãªã䜿ã£ãŠããprint()颿°ã®æ£äœãŸã§ã¹ãããªçè§£ã§ããããã«ãªããŸããð¯
å¯å€é·åŒæ°ãšã¯ããã®åã®ãšãã颿°ã®åŒæ°ã®æ°ãåºå®ã§ã¯ãªããèªç±ãªæ°ã ãèšå®ã§ããåŒæ°ã®ããšã§ããå¯å€é·åŒæ°ã䜿ã£ãŠé¢æ°ãå®çŸ©ããŠããã°ãåã颿°ãåŒã³åºããšãã«åŒæ°ã2ã€æž¡ããŠãã3ã€æž¡ããŠããã¯ããŸã10åæž¡ããŠãããšã©ãŒã«ãªããã«åããŠãããŸãã
åŒæ°ã®æ°ãåŒã³åºãåŽã«å§ããããïŒé¢æ°ã®æè»æ§ãåçã«ã¢ããããããšããããšã
æžãæ¹ã¯é©ãã»ã©ã·ã³ãã«ã§ã颿°å®çŸ©ã®åŒæ°åã®åã«*ã1ã€ä»ããã ãããã£ãããã ãã§ãå¯å€é·åŒæ°ã®é¢æ°ã宿ããŸãã
*argsdef func(*args):
print(args)
func(1) # â (1,)
func(1, 2, 3) # â (1, 2, 3)
颿°åŽã§ã¯ãåãåã£ãè€æ°ã®åŒæ°ã1ã€ã®ã¿ãã«ãšããŠå€æ°argsã«ãŸãšããããŸããargsãšããååã¯æ
£ç¿çã«ãã䜿ãããŸãããå¥ã®ååã«ããŠããŸã£ããåé¡ãããŸããð
joinã§æååçµåãã§ããdef func(*args):
result = ",".join(args)
print(result)
func("a") # â a
func("A", "a", "æ") # â A,a,æ
ãããªãµãã«ãåãåã£ãã¿ãã«ããã®ãŸãŸã«ãŒãç³»ã¡ãœããã«æž¡ããŠäœ¿ããã®ãæ°æã¡ãããšãããèŠçŽ ã®æ°ã«å¿ããŠæè»ã«åŠçãèµ°ããŸãã
print()ããå¯å€é·åŒæ°ã®ä»£è¡šéžæïŒãããããã®åäœã©ããã§èŠãããšãããªâŠããšæããæ¹ã¯éãð ãããæ¯æ¥ã®ããã«æžããŠããprint()ãããå¯å€é·åŒæ°ã§äœããã颿°ã®ä»£è¡šäŸã§ãã
print("Hello", "Python", 123)
# â Hello Python 123
åŒæ°ãäœåæž¡ããŠãåè§ã¹ããŒã¹ã§åºåãããŠè¡šç€ºãããã®ã¯ãå éšã§å¯å€é·åŒæ°ãåãåãããŸãšããŠåŠçããŠãããããªãã§ãããä»çµã¿ãç¥ããšããã€ãã®ã³ãŒããå°ãéã£ãŠèŠããŠããŸãð
**kwargsããäžã€ã®å¯å€é·åŒæ°ããããŒã¯ãŒãåŒæ°ãèŸæžãšããŠåãåãã¿ã€ãããã¡ãã¯åŒæ°åã®åã«*ã2ã€ä»ããŠå®çŸ©ããŸãã
def func(**kwargs):
print(kwargs)
func(name="ãµã€ã")
# â {'name': 'ãµã€ã'}
func(name="éŽæš", id=1, type="02")
# â {'name': 'éŽæš', 'id': 1, 'type': '02'}
åŒã³åºãåŽã§ããŒ=å€ã®åœ¢ã§æž¡ããšã颿°åŽã§ã¯åŒæ°åãããŒãå€ãããªã¥ãŒã®èŸæžãšããŠåãåãããŸãããããèªç±ãªæ°ã ãããŒã¯ãŒãåŒæ°ãæž¡ããã®ã§ãèšå®å€ãæè»ã«åãåããããšãã«å€§æŽ»èºããŸãâš
å¯å€é·åŒæ°ã¯ããã¡ããæ®éã®åŒæ°ãšäžç·ã«äœ¿ãããšãã§ããŸãããã ã䞊ã³é ãšåŒã³åºãæ¹ã«å°ãã ãã«ãŒã«ãããã®ã§æŒãããŠãããŸãããã
*argsãåŸãã«æžãå ŽåïŒæ®éã®åŒæ°ãå
ã«æžããåŒã³åºãåŽããã®ãŸãŸäœçœ®åŒæ°ã§æž¡ãã°OKã*argsãå
ã«æžãå ŽåïŒæ®éã®åŒæ°ã¯åŸãã«æ¥ãã®ã§ãåŒã³åºãåŽã¯ããŒã¯ãŒãåŒæ°ã§æå®ããå¿
èŠããã**kwargsãšæ®éã®åŒæ°ãçµã¿åããããšãã¯ãæ®éã®åŒæ°ãå
ã«æžãã®ãåºæ¬ã«ãŒã«ãdef func(*args, x):
print(f"args={args}, x={x}")
func(1, 2, 3, x=100)
# â args=(1, 2, 3), x=100
ãã®ããããæèãããšããšã©ãŒã§è©°ãŸãããšããã£ãšæžããŸããð
åç»ãšåãããŠæå ã«1å眮ããŠãããšã埩ç¿ãå¿çšããã£ãšã¹ã ãŒãºã«ãªããŸããã¬ãã«å¥ã«å³éžããæžç±ã玹ä»ããŸããð
ããããã颿°ã®åŒæ°ã£ãŠã©ãæžããã ã£ãïŒããšããã¬ãã«ããåªããåŠã³çŽãããæ¹ã«ãŽã£ãããäŒè©±ããŒã¹ã§èªã¿é²ããããã®ã§ãå¯å€é·åŒæ°ã®ãããªå°ãæœè±¡çãªããŒããè ã«èœã¡ãããã§ãã
倿°ã»é¢æ°ã»åŒæ°ã®ã«ãŒã«ãäžåã§ç¶²çŸ ãããæ¹ã«ã¯ãå®çªã®ã¹ãããªç³»ããããããå¯å€é·åŒæ°ã®åšèŸºç¥èïŒããã©ã«ãåŒæ°ã»ããŒã¯ãŒãåŒæ°ïŒãŸã§å°ç¶ãã§çè§£ã§ããŸãã
*argsã**kwargsãããã€ã»ãªã䜿ãã®ãããŸã§èžã¿èŸŒãã§åŠã³ããæ¹ã«ã颿°èšèšã®èãæ¹ãã€ãã£ãªã ã«è§Šããããã³ãŒãããã£ãšPythonããããªããŸãã
å¯å€é·åŒæ°ã颿°ãã³ã¬ãŒã¿ãŒã颿°åæãAPIèšèšã«ã©ã掻ããããäžçŽè ããäžçŽè ãžãšã¹ãããã¢ãããããæ¹ã«ã¯ããã¡ããæé©ã§ãã
ãåãã³ãŒãããããçŸããã³ãŒãããžãå¯å€é·åŒæ°ã®èœãšã穎ããä¿å®ãããã颿°èšèšã®ã³ããé ç®å¥ã«ãŸãšãŸã£ãŠãããç¥èãäžæ°ã«ç«äœçã«ãªããŸãã
*argsãš**kwargsãååã¯å¿
ãããã«ããªããšãã¡ïŒããããååã¯èªç±ã§ãã*itemsã§ã**optionsã§ãåããŸãããã ãæ
£ç¿ãšããŠargsãškwargsãããã¡ã¯ããªã®ã§ãç¹å¥ãªçç±ããªããã°ãã®ååã䜿ããšãä»ã®äººãèªãã ãšãã«ããæå³ãäŒãããŸãã
*argsã¯ã¿ãã«ã**kwargsã¯èŸæžã£ãŠèŠããã°OKïŒã¯ãããã®çè§£ã§å€§äžå€«ã§ãâ
*argsã¯é åºãæã€è€æ°ã®å€ãã¿ãã«ãšããŠã**kwargsã¯ããŒä»ãã®å€ãèŸæžãšããŠåãåããŸããäžèº«ã®åãåºãæ¹ããããããã¿ãã«ã»èŸæžã®æäœãšåãæèŠã§OKã§ãã
*argsãš**kwargsã¯åæã«äœ¿ããïŒäœ¿ããŸãïŒé åºã¯def func(æ®éã®åŒæ°, *args, **kwargs):ã®ããã«æžãã®ãåºæ¬ã«ãŒã«ããããèŠããŠããã°ãã»ãŒããããåŒã³åºãæ¹ãåãæ¢ããããæ±çšé¢æ°ãäœããŸãð ïž
åŒã³åºãåŽã®æžãæ¹ãå€ãããŸããå¯å€é·åŒæ°ãªãfunc(1, 2, 3)ã®ããã«åå¥ã«æž¡ããŠã颿°åŽã§ã²ãšãŸãšãã«ã§ããŸããäžæ¹ããã§ã«ãããªã¹ããå±éããŠæž¡ããããšãã¯func(*my_list)ã®ããã«ã¢ã³ããã¯ããã°OKã§ãã
ãã¡ããå¯èœã§ããdef func(x: int = 0, *args: int, **kwargs: str) -> None:ã®ããã«åãã³ãããã£ããä»ããããŸããåãã³ãã䜵çšãããšããšãã£ã¿ã®è£å®ãéçè§£æãå¹ãããã«ãªãããã°ãæžãããŠäžç³äºé³¥ã§ãð
å¯å€é·åŒæ°*argsãš**kwargsã¯ãPythonã®é¢æ°ãäžæ®µéãã¯ãŒã¢ãããããŠãããéèŠãªä»çµã¿ã§ããåŒæ°ã®æ°ãååãåŒã³åºãåŽã«å§ããããããšã§ãæ±çšçã§åå©çšãããã颿°ãæžããããã«ãªããŸãã
ãŸãã¯å°ããªãŠãŒãã£ãªãã£é¢æ°ã§*argsã詊ããŠã¿ãŠãæ
£ããŠããã**kwargsã§èšå®å€ãåãåã颿°ã«ãã£ã¬ã³ãžãæ°ã¥ãããšãã«ã¯ãããªãã®ã³ãŒããé©ãã»ã©ã¹ãããª&æè»ã«ãªã£ãŠããã¯ãã§ãð 仿¥ããæ©éãèªåã®ã¹ã¯ãªããã§äœ¿ã£ãŠã¿ãŸãããïŒ
â ïž Windowsã»ãã¥ãªã…
ð§ çªç¶ã®æçš¿ã«ãã¡ã³éšç¶ïŒã©…
ð§© ããºã«ãè§£ãå¿«æãã³ãŒãã§…
âš ããã°ã©ã ã®åäœã軜ããã…
ð ãµãŒããŒãµã€ãéçºã®äžçãž…
âš é¢åãªWebäœæ¥ãèªååã…