рдЕрдЬрдЧрд░ рдХреЛрдб рдХреА 4 рдорд┐рд▓рд┐рдпрди рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ред рднрд╛рдЧ 1

рдЖрдЬ рд╣рдо рдХреИрд╕реЗ рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдЕрдЬрдЧрд░-рдХреЛрдб рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред



рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдкрд╛рдпрдерди рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ - рднрд╛рд╖рд╛ рд╣реИ рдХрд┐ рд╣рдо рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рджреЛрдиреЛрдВ рдмреИрдХ-рдПрдВрдб рд╕реЗрд╡рд╛рдУрдВ, рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдПред рд╣рдо рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЧреЛ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЬрдВрдЧ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рд╣рдорд╛рд░реА рдореБрдЦреНрдп рднрд╛рд╖рд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкреИрдорд╛рдиреЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдФрд░ рд╣рдо рдкрд╛рдпрдерди рдХреЛрдб рдХреА рд▓рд╛рдЦреЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдРрд╕реЗ рдХреЛрдб рдХреА рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдиреЗ рдЗрд╕рдХреА рд╕рдордЭ рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЛ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдзреАрд░реЗ-рдзреАрд░реЗ mypy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рд╕реНрдереИрддрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдореЗрдВ рдмрджрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдпрд╣ рд╢рд╛рдпрдж рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдЬрд╛рдБрдЪ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рдХрд╛рд░ рд╣реИред Mypy рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ; рдЗрд╕рдХреЗ рдореБрдЦреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

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

тЖТ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдкрдврд╝реЗрдВ

рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?


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

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

  • рдХреНрдпрд╛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди None рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?
  • рдпрд╣ items рддрд░реНрдХ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
  • рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдХрд╛рд░ рдХреНрдпрд╛ рд╣реИ id : int рдЗрд╕ рд╣реИ, str рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░, рдпрд╛?
  • рдХреНрдпрд╛ рдпрд╣ рддрд░реНрдХ рдПрдХ рд╕реВрдЪреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдЗрд╕рдореЗрдВ рдПрдХ рдЯрдкрд▓ рдкрд╛рд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

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

 class Resource:    id: bytes    ...    def read_metadata(self,                      items: Sequence[str]) -> Dict[str, MetadataItem]:        ... 

  • read_metadata рдХреЛрдИ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ Optional[тАж] рдирд╣реАрдВ рд╣реИ Optional[тАж] ред
  • items рддрд░реНрдХ рддрд╛рд░ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИред рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • id рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред

рдПрдХ рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдХреЛрдИ рдпрд╣ рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рднреА рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рд▓реЗрдЦрди (рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧ) рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреАред рд▓реЗрдХрд┐рди рдЕрдиреБрднрд╡ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдореЗрдВ рдРрд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдЬрд┐рдирдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рдЕрдХреНрд╕рд░ рджреЗрдЦрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЛрдб рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рд╡рд░реНрддрдорд╛рди рдЕрдЧрд░, рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдкрд░ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИред рдпрд╣ рдкреНрд░рд▓реЗрдЦрди рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ, рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕реЗ рдЧрд▓рддрдлрд╣рдореА рдХреЗ рд▓рд┐рдП рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рдмрдбрд╝реА рдЯреАрдореЛрдВ рдпрд╛ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдмрд╣реБрдд рдЧрдВрднреАрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

mypy рддрд░рд╣ рдирд┐рд░реАрдХреНрд╖рдг рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрд╛рдВрдЪ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо (рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдкреБрд╖реНрдЯрд┐) рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддрд╛ рд╣реИ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рднрд╛рд╖рд╛ рджреЗрддрд╛ рд╣реИ рдХреА рд╡рдЬрд╣ рд╕реЗ рдКрдкрд░ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБ рд╣рдореЗрдВ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЬрд╛рдБрдЪреЗ рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рддрд░рд╣ рдХреБрдЫ рджреЗрддреА рд╣реИрдВред

рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрдиреНрдп рдлрд╛рдпрджреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ nontrivial рд╣реИрдВ:

  • рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдкреНрд░рдгрд╛рд▓реА рдХреБрдЫ рдЫреЛрдЯреА (рдФрд░ рд╕рд╛рде рд╣реА рдмрд╣реБрдд рдЫреЛрдЯреА рдирд╣реАрдВ) рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреА рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрдм рд╡реЗ рдореВрд▓реНрдп рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ None рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ред
  • рдмрд╣реБрдд рдХреЛрдб рдкреБрдирд░реНрд░рдЪрдирд╛ рд╕рд░рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдкреНрд░рдгрд╛рд▓реА рдмрд╣реБрдд рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдЕрдХреНрд╕рд░ рд╣реИ рдХреМрди-рд╕рд╛ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╣рдо 100% рдХреЛрдб рдХрд╡рд░реЗрдЬ, рдЬреЛ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдо рддреМрд░ рдкрд░ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрд╣рд░рд╛рдИ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  • рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдЦрд╕рдЦрд╕ тАЛтАЛрдЕрдХреНрд╕рд░ рдПрдХ рд╡рд┐рднрд╛рдЬрд┐рдд рджреВрд╕рд░реЗ рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдкрд░реАрдХреНрд╖рд╛ рдирд┐рд╖реНрдкрд╛рджрди рдЖрдорддреМрд░ рдкрд░ рд╕реЗрдХрдВрдб рдпрд╛ рдЙрд╕рд╕реЗ рднреА рдорд┐рдирдЯ рдХреЗ рджрд╕рд┐рдпреЛрдВ рд▓реЗрддрд╛ рд╣реИред рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рддреБрд░рдВрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддреА рд╣реИ рдФрд░ рдЙрд╕реЗ рдЕрдкрдирд╛ рдХрд╛рдо рддреЗрдЬрд╝реА рд╕реЗ рдХрд░рдиреЗ рджреЗрддреА рд╣реИред рдЙрд╕реЗ рдЕрдм рдирд╛рдЬреБрдХ рдФрд░ рд╕рдорд░реНрдерди-рднрд╛рд░реА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдореЛрдХ рдФрд░ рдкреИрдЪ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХреЛрдб рдкрд░реАрдХреНрд╖рдг рддреЗрдЬреА рд╕реЗ рд╣реЛ рд╕рдХреЗред

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

Mypy Background


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

рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореЗрд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдкрд╛рдпрдерди рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдирд╣реАрдВ рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВрдиреЗ рдЫреЛрдЯреА "рд╣реЛрдо-рдореЗрдб" рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рджрд╛рдВрд╡ рдкрд░ рдХреНрдпрд╛ рд╣реИ (рдкреНрд░рдХрд╛рд░ рдПрдиреЛрдЯреЗрд╢рди рдпрд╣рд╛рдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ):

 def Fib(n as Int) as Int  if n <= 1    return n  else    return Fib(n - 1) + Fib(n - 2)  end end 

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

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рднрд╛рд╖рд╛ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдЗрд╕ рдкрд▓ рдореЗрдВ рдпрд╣ рдЕрдЬрдЧрд░ рдХреЗ рдирд╛рдо рд╕реЗ рдЬрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ: рдпрд╣ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рдЯрд┐рдкреНрдкрдгреА рдкреНрд░рдХрд╛рд░ рдЕрдЬрдЧрд░ 3 рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреА рд╡рдЬрд╣ рд╕реЗ рдПрдХ рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг рдерд╛ред

рдпрд╣ рдЬрд╛рд╡рд╛ рдФрд░ рдЕрдЬрдЧрд░ рдХрд╛ рдорд┐рд╢реНрд░рдг рдХреА рддрд░рд╣ рджреЗрдЦрд╛:

 int fib(int n):    if n <= 1:        return n    else:        return fib(n - 1) + fib(n - 2) 

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

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

 def fib(n: int) -> int:    if n <= 1:        return n    else:        return fib(n - 1) + fib(n - 2) > рдкреВрд░реНрдгрд╛рдВрдХ: def fib(n: int) -> int:    if n <= 1:        return n    else:        return fib(n - 1) + fib(n - 2) 

рдореИрдВ рдХреБрдЫ рд╕рдордЭреМрддреЗ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрд╛рдпрдерди 3.3, рдЙрд╕ рд╕рдордп рднрд╛рд╖рд╛ рдХрд╛ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг, рдЪрд░ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЧреБрдЗрдбреЛ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдкрд░ рдИрдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИред рд╣рдордиреЗ рдЪрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЗрд╕рдиреЗ рд╣рдореЗрдВ рдЕрдкрдирд╛ рд▓рдХреНрд╖реНрдп рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдмреЛрдЭрд┐рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛ (рдкрд╛рдпрдерди 3.6 рдиреЗ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рджреА):

 products = [] # type: List[str] # Eww 

рдкрд╛рдЗрдерди 2 рд╕рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдХрдореЗрдВрдЯреНрд╕ рднреА рдХрд╛рдо рдЖрдП, рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди рд╕рдкреЛрд░реНрдЯ рдХреА рдХрдореА рд╣реИ:

 f fib(n):    # type: (int) -> int    if n <= 1:        return n    else:        return fib(n - 1) + fib(n - 2) 

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпреЗ (рдФрд░ рдЕрдиреНрдп) рд╕рдордЭреМрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреЗ рдереЗ - рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд▓рд╛рдн рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬрд▓реНрдж рд╣реА рдирд╣реАрдВ-рддреЛ-рд╕рд╣реА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдкрд╛рдпрдерди рдХреЛрдб рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, рдореМрдЬреВрджрд╛ рдкрд╛рдпрдерди рдЙрдкрдХрд░рдг рдФрд░ рдХреЛрдб рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреА рдереАрдВ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдирдП рдЯреВрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддреА рдереАрдВред

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

рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдпрджрд┐ рдЖрдк рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВред


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


All Articles