рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рдпрд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
def memo_square(a, cache={}): if a not in cache: cache[a] = a*a return cache[a]
рд░рд┐рд╕реЗрдкреНрд╢рди рдЕрд╡рд╛рдВрдЫрдиреАрдп рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдХрдо рдЬреНрдЮрд╛рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рд╣рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
memo_square
(рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣) рдлрд╝рдВрдХреНрд╢рди рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмреАрдЪ, рдПрдХ
memo_square.__defaults__
рдЯрдкрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рднрд░рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рд╢рдмреНрджрдХреЛрд╢ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рд╣реЗрдбрд░ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
>>> memo_square.__defaults__ ({},)
__defaults__
рдПрдХ рдирд┐рдпрдорд┐рдд рдЯрдкрд▓ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗред рд╕рд╣реА рд╣реИ, рдЖрдк рдПрдХ рдмрд╛рд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рдЯрдкрд▓ рдХреЛ:
>>> def test(a=1, b=2): ... print(a, b) ... >>> test.__defaults__ (1, 2) >>> test() 1 2 >>> test.__defaults__ = (', ', '') >>> test() , >>> test.__defaults__[1] = '' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> test.__defaults__ = {0: ', ', 1: ''} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __defaults__ must be set to a tuple object
рд╕реЛрд░рди, рдпрд╣ рд▓реЗрдЦ рдкрд┐рдХрд╛рдмрд╛ рдХреЛ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред рдЦреИрд░, рдареАрдХ рд╣реИ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐, рдмрд╣реБрдд рд╣реА рдЪрд╛рд▓рд╛рдХ рдХреЛрдб рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде,
func.__defaults__
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЯреНрдпреВрдкрд▓ рдФрд░ рдЙрд╕рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╣рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рдЬрдм рддрдХ рдлрд╝рдВрдХреНрд╢рди рдореМрдЬреВрдж рд░рд╣реЗрдЧрд╛, рддрдм рддрдХ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рддрддреНрд╡ рдЦреБрдж рдХреЛ рдмрджрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ, рддреЛ рдХреЛрдИ рднреА рдЙрдиреНрд╣реЗрдВ рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдРрд╕реЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛
рдЕрдЬрдЧрд░ рдореЗрдВ рдЦреБрдж рдХреЛ рдЧреЛрд▓реА рдорд╛рд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ ред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдорд╛рдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрдИ рдХреЙрд▓ рдХреЗ рдмрд╛рдж,
memo_square.__defaults__
рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
>>> memo_square(2) 4 >>> memo_square.__defaults__ ({2: 4},) >>> memo_square(5) 25 >>> memo_square.__defaults__ ({2: 4, 5: 25},) >>> memo_square(2) 4 >>> memo_square.__defaults__ ({2: 4, 5: 25},)
рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рди рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдХреИрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдн рдЫреЛрдЯрд╛ рд╣реИ (рд╕рдЦреНрддреА рд╕реЗ рдмреЛрд▓рдирд╛, рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдн рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдЦреЛрдЬрдирд╛ рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╣рдВрдЧреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдорд░рдг / рдХреИрд╢рд┐рдВрдЧ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрдЬрдЧрд░ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдорд░рдг рдХрд╛ рдпрд╣ рддрд░реАрдХрд╛ рдЦреЛ рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИред рдирд┐рдЬреА рддреМрд░ рдкрд░, рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рдлреИрд╕рд▓реЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ, рддреЛ рдореИрдВрдиреЗ рдХреБрдЫ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВред рджреВрд╕рд░реА рдУрд░, рдЗрди рджреЛ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдореИрдВ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╕рдордЭрдиреЗ рд▓рдЧрд╛ рдХрд┐ рдкрд╛рдпрдерди рдХреИрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рддрд░реНрдХ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рднрд▓реЗ рд╣реА рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ (рд╕рдВрд╕реНрдорд░рдг рдХреЗ рд▓рд┐рдП рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдирд╛рдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП), рдпрд╣ рддрдХрдиреАрдХ рдХрд┐рд╕реА рднреА рдкреЛрд╖рдг рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред