рдиреМрдХрд░реА рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рдХрд╛рд░реНрдп рд╡рд┐рд╡рд░рдг

рд╕рд▓рд╛рдо, рдЦрд╝рдмрд░реЛрдВ рдХреЛ! "рдкрд╛рдпрдерди рдореЗрдВ рд╡реЗрдм-рдбреЗрд╡рд▓рдкрд░" рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░ рдПрдХ рдирдП рд╕реВрддреНрд░ рдХреЗ рд▓реЙрдиреНрдЪ рдХреА рдкреНрд░рддреНрдпрд╛рд╢рд╛ рдореЗрдВ рд╣рдо рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧреА рдЕрдиреБрд╡рд╛рдж рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!



рдХрдИ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░реЛрдВ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж , рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░рдХрд░реНрддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред

def f(x, l=[]): for i in range(x): l.append(i * i) return l >>> f(2) >>> f(3, [0, 1, 2]) >>> f(3) 


рдкреНрд░рд╢реНрди: рдпрд╣ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдкрд╣рд▓реА рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ f(3) рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдореБрдЭреЗ рдЗрддрдирд╛ рд╕реАрдзрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ред рдЖрдЗрдП рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдлрдВрдХреНрд╢рди f рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реЛрддрд╛ f ред рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ IPython рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

 >>> f <function __main__.f(x, l=[])> >>> f.__defaults__ ([],) 


рдЦрд╛рд▓реА рд╕реВрдЪреА рдЬрд┐рд╕реЗ рд╣рдо f.__defaults__ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдореЗрдВ рдЪрд░ l рд╣реИред

 >>> f(2) [0, 1] 


рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВред

 >>> f <function __main__.f(x, l=[0, 1])> >>> f.__defaults__ ([0, 1],) 


рд╣рд╛рд▓рд╛рдВрдХрд┐! рдЕрдм рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╛рдпрдерди рдореЗрдВ рд╕реВрдЪреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЪрд░ l рдХрд╛ рдореВрд▓реНрдп [0, 1] ред

 >>> f(3, [0, 1, 2]) [0, 1, 2, 0, 1, 4] >>> f <function __main__.f(x, l=[0, 1])> 


рдХреБрдЫ рдЦрд╛рд╕ рднреА рдирд╣реАрдВред рдмрд╕ рдЪрд░ l рд░реВрдк рдореЗрдВ list рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ред

 >>> f(3) [0, 1, 0, 1, 4] >>> f <function __main__.f(x, l=[0, 1, 0, 1, 4])> 


рдФрд░ рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдкред рдЬрдм рдЖрдк f(3) рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЦрд╛рд▓реА рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ f.__defaults__ ([0, 1]) рдХреЗ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде l рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдкреБрдирд╢реНрдЪ

рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЗ рдмрд╛рдж рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ( 'l' рдХрд╛ рдорд╛рди 'None' )ред

 def f(x, l=None): if l is None: l = [] for i in range(x): l.append(i * i) return l >>> f(2) [0, 1] >>> f(3, [0, 1, 2]) [0, 1, 2, 0, 1, 4] >>> f(3) [0, 1, 4] 


рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрдирд╛рдпрд╛ред рдпрд╣ рдкреЛрд╕реНрдЯ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ :-) рдкрд░ рдХрд░рддрд╛ рд╣реВрдВред

рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреБрд╡рд╛рдж рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рд╣рдо рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░ рджреЗрдЦрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi459518/


All Articles