PEP 3107 (рдлрд╝реАрдЪрд░ рдПрдиреЛрдЯреЗрд╢рди)

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреАрдИрдкреА рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ред рд╣рдо 3.X рдорд╛рдирдХреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрдЬрдЧрд░ 3.8 рдореЗрдВ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдкреАрдИрдкреА рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдкрдврд╝рдирд╛ рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдареАрдХ рд╣реИ рдЪрд▓рддреЗ рд╣реИрдВ:


рдкреАрдИрдкреА 572 - рдлрд╝реАрдЪрд░ рдПрдиреЛрдЯреЗрд╢рди

рдЬреЛрд╢3107
рд╢реАрд░реНрд╖рдХ:рдлреАрдЪрд░ рдПрдиреЛрдЯреЗрд╢рди
рд▓реЗрдЦрдХ:Collin Winter <googlein> рдкрд░ Collinwinter>, рдЯреЛрдиреА Lownds <tony at lownds.com>
рд╕реНрдерд┐рддрд┐:рдЕрдВрддрд┐рдо
рдПрдХ рдкреНрд░рдХрд╛рд░:рдорд╛рдирдХ
рдмрдирд╛рдпрд╛ рдерд╛:2 рджрд┐рд╕рдореНрдмрд░ 2006
рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг:3.0

рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди


рдпрд╣ PEP рдкрд╛рдпрдерди рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдордирдорд╛рдирд╛ рдПрдиреЛрдЯреЗрд╢рди (рдореЗрдЯрд╛рдбреЗрдЯрд╛) рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

рдФрдЪрд┐рддреНрдп


рдкрд╛рдпрдерди 2.x рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдмрд┐рд▓реНрдЯ-рдЗрди рддрд░реАрдХрд╛ рдирд╣реАрдВ рдерд╛ред рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рдЙрдкрдХрд░рдг рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ PEP 318 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рдкреАрдИрдкреА рдХреЛ рддрдВрддреНрд░ рдФрд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рднреНрд░рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓, рдорд╛рдирдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдлрд╝реАрдЪрд░ рдПрдиреЛрдЯреЗрд╢рди рдмреЗрд╕рд┐рдХреНрд╕


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдкрд╛рдпрдерди 3.0 рдлреАрдЪрд░ рдПрдиреЛрдЯреЗрд╢рди рдкрд░ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЖрдЗрдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ:

  1. рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░рд┐рдЯрд░реНрди рдорд╛рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВред
  2. рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдХреЗ рд╕рд╛рде рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред

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

    рдЬрдм рдХреЗрд╡рд▓ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЕрд░реНрде рд╣реЛрддрд╛ рд╣реИред рд╡реЗ рдлрд╝рдВрдХреНрд╢рди рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛ рдЪрд╛рд╣реЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдмреЗрд╣рддрд░ рд╕рдВрджрд░реНрдн рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

    def compile(source: "something compilable",
                filename: "where the compilable thing comes from",
                mode: "is this a single statement or a suite?"):
        ...

    рдПрдХ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдХрд╛рд░ рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рдФрд░ рд╡рд┐рдзрд┐ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛ред рд╢рд╛рдпрдж рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:

    def haul(item: Haulable, *vargs: PackAnimal) -> Distance:
        ...

    рд╣рдо рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ: рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╡реЗ рдХреЗрд╡рд▓ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрд░реНрде рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
  3. рдкреИрд░рд╛ 2 рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░, рдпрд╣ рдкреАрдИрдкреА рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдорд╛рдирдХ рддрдВрддреНрд░ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд╛рд░рд╛ рдХрд╛рдо рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд╛рдХреНрдп - рд╡рд┐рдиреНрдпрд╛рд╕


рдкреИрд░рд╛рдореАрдЯрд░


рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдирд╛рдо рдХреЗ рдмрд╛рдж рдкреИрд░рд╛рдореАрдЯрд░ рдПрдиреЛрдЯреЗрд╢рди рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИрдВ:

def foo (a: , b:  = 5):
    ...

Pseudogrammatics рдореЗрдВ, рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдм рдЬреИрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВ: рдкреИрд░рд╛рдореАрдЯрд░ [: рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐] [= рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐] ред рдЕрд░реНрдерд╛рддреН, рдПрдиреЛрдЯреЗрд╢рди, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреА рддрд░рд╣, рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдЪрд┐рд╣реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдХреЛрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рдЬреИрд╕реЗ рд╕рднреА рдПрдиреЛрдЯреЗрд╢рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИред "рдЕрддрд┐рд░рд┐рдХреНрдд" рддрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ (рдЕрд░реНрдерд╛рдд * args рдФрд░ ** kwargs) рдХрд╛ рдПрдХ рд╣реА рд╡рд╛рдХреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:

def foo(*args: expression, **kwargs: expression):
    ...

рдиреЗрд╕реНрдЯреЗрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рд╣рдореЗрд╢рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐ рдЕрдВрддрд┐рдо рдмреНрд░реИрдХреЗрдЯред рдиреЗрд╕реНрдЯреЗрдб рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ "рдирд╛рдо" рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:

def foo((x1, y1: expression),
        (x2: expression, y2: expression)=(None, None)):
    ...

рдорд╛рди рд▓реМрдЯрд╛рдПрдВ


рдЕрдм рддрдХ, рд╣рдордиреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

def sum() -> expression:
    ...

рдпрд╣реА рд╣реИ, рд╢рд╛рдмреНрджрд┐рдХ -> рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЕрдм рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреА рд╣реИред рдкреИрд░рд╛рдореАрдЯрд░ рдПрдиреЛрдЯреЗрд╢рди рдХреА рддрд░рд╣, рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рддрдм рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛред

рд╕рдорд╛рд░реЛрд╣ рдШреЛрд╖рдгрд╛рдУрдВ рдХрд╛ рдкреВрд░рд╛ рд╡реНрдпрд╛рдХрд░рдг рдЕрдм рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
decorators: decorator+
funcdef: [decorators] 'def' NAME parameters ['->' test] ':' suite
parameters: '(' [typedargslist] ')'
typedargslist: ((tfpdef ['=' test] ',')*
                ('*' [tname] (',' tname ['=' test])* [',' '**' tname]
                 | '**' tname)
                | tfpdef ['=' test] (',' tfpdef ['=' test])* [','])
tname: NAME [':' test]
tfpdef: tname | '(' tfplist ')'
tfplist: tfpdef (',' tfpdef)* [',']

lambdas


рд▓реИрдореНрдмреНрдбрд╛ рдлрд╝рдВрдХреНрд╢рди рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдХреЛрд╖реНрдардХ рдореЗрдВ рддрд░реНрдХреЛрдВ рдХреЛ "рд▓рдкреЗрдЯрдиреЗ" рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдРрд╕рд╛ рдкрд░рд┐рд╡рд░реНрддрди рди рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐:

  1. рдпрд╣ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛрдЧрд╛ред
  2. рд▓рдореНрдмрджрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрдЯрд╕реНрде рдФрд░ рдЕрдирд╛рдо рд╣реИрдВ
  3. рд▓реИрдореНрдмреНрдбрд╛ рдХреЛ рд╣рдореЗрд╢рд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ


рд╕реБрд╡рд┐рдзрд╛ рдПрдиреЛрдЯреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ


рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж, рдлрд╝рдВрдХреНрд╢рди рдПрдиреЛрдЯреЗрд╢рди __annotations__ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ рдЬреЛ рдЪрд░ рдХреЗ рдирд╛рдореЛрдВ рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреЗрддрд┐рдд рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред

__Annotations__ рдбрд┐рдХреНрд╢рдирд░реА рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ "рд░рд┐рдЯрд░реНрди" рдХреБрдВрдЬреА рд╣реИред рдпрд╣ рдХреБрдВрдЬреА рдХреЗрд╡рд▓ рддрднреА рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИ рдЬрдм рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд╛рдкрд╕реА рдорд╛рди рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдиреЛрдЯреЗрд╢рди:

def foo (a: 'x', b: 5 + 6, c: list) -> max (2, 9):
    ...

__Annotations__ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛:

{'a': 'x',
 'b': 11,
 'c': list,
 'return': 9}

рдХреБрдВрдЬреА рдирд╛рдо "рд╡рд╛рдкрд╕реА" рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рднреА рдкреНрд░рдпрд╛рд╕ рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕рдПрдпрд░ рдЕрдкрд╡рд╛рдж рдореЗрдВ рд╣реЛрдЧрд╛)ред

__Annotations__ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧреА рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдиреЛрдЯреЗрд╢рди рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд▓рдВрдмрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдмрдХреНрд╕реЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ


рдПрдиреЛрдЯреЗрд╢рди рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рджреМрд░рд╛рди, рд╣рдордиреЗ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреАред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░реЗрд╖рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ "рд╡рд░реНрдЧ" рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдореМрдЬреВрджрд╛ рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╕рдВрдХреБрд▓ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬреЛ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  • рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛
    • рдЪреЗрдХ рдЯрд╛рдЗрдк рдХрд░реЗрдВ
    • рдЖрдИрдбреАрдИ рдЯрд┐рдкреНрд╕ рдПрдХреНрд╕рдкреЗрдХреНрдЯреЗрдб рдПрдВрдб рд░рд┐рдЯрд░реНрдиреЗрдб рдЖрд░реНрдЧреБрдореЗрдВрдЯ рдЯрд╛рдЗрдкреНрд╕ рдкрд░
    • рдХрд╛рд░реНрдп рдЕрдзрд┐рднрд╛рд░ / рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп [рд▓рдЧрднрдЧ]ред рдлрд╝рдВрдХреНрд╢рди рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ рдФрд░ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ]
    • рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдкреБрд▓
    • рдЕрдиреБрдХреВрд▓рди
    • рддрд░реНрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдХрд░реЗрдВ
    • рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдореИрдк рдХрд░рдирд╛
    • рдЖрд░рдкреАрд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ [рд▓рдЧрднрдЧред рдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ рд░реИрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕реВрдЪрдирд╛ рдХреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдпрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред RPC - рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓]
  • рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛
    • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд░рд┐рдЯрд░реНрди рдорд╛рди

рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп


Pydoc рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛


Pydoc рдореЙрдбреНрдпреВрд▓ рдлрд╝рдВрдХреНрд╢рди рд╕рдВрджрд░реНрдн рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдирд┐рд░реАрдХреНрд╖рдг рдореЙрдбреНрдпреВрд▓ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред

рдЕрдиреНрдп PEP рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ


рдлрдВрдХреНрд╢рди рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕


рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреИрд░рд╛рдореАрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИрдВред [рд▓рдЧрднрдЧред рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (рд╣рд╕реНрддрд╛рдХреНрд╖рд░) - рдЗрд╕рдХреА рд╕рд╛рдорд╛рдиреНрдп рдШреЛрд╖рдгрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛, рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреВрд╕рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдорд╛рд░реЛрд╣ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ]

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рд╕рдВрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди py3k рд╢рд╛рдЦрд╛ (рдкреВрд░реНрд╡ рдореЗрдВ "p3yk") рдореЗрдВ рд╕рдВрд╢реЛрдзрди 53170 рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рдЕрд╕реНрд╡реАрдХреГрдд рдкреНрд░рд╕реНрддрд╛рд╡


  • BDFL [. ] , , : ┬л ┬╗
  • stdlib , , . .
  • , , .
  • рдЖрдЧреЗ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдПрдиреЛрдЯреЗрд╢рди рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХрд╛ рдорд╛рдирдХреАрдХрд░рдг рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдРрд╕рд╛ рд╕рдордЭреМрддрд╛ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдЧрд╛ред рд╣рдо рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрди рд╕рдордЭреМрддреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдХреБрдЫ рд╡рдВрдЪрд┐рдд рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

All Articles