рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдореЙрдбреНрдпреВрд▓

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


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

  • рдиреЗрдЯрд┐рд╡ C / C ++ рдПрдХреНрд╕рдЯреЗрдВрд╢рди
  • рдмрдбрд╝рд╛ рдШреВрдБрдЯ
  • Cython
  • ctypes
  • рд░рддреБрдЖ

рд╡рдХреНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ : рджрд┐рдорд┐рддреНрд░реА рдЬрд╝рд┐рд▓реНрддреНрд╕реЛрд╡ 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡рд╣ Cian рдореЗрдВ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреА рд╡рд╣ рддрдХрдиреАрдХреА рд╕рдорд╛рдзрд╛рди рдФрд░ рд╕рдордп рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЕрдкрдиреЗ рдЬреАрд╡рди рдореЗрдВ рдореИрдВ рдЕрд╕реЗрдВрдмрд▓рд░, рд╣рд╛рд╕реНрдХреЗрд▓, рд╕реА рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдФрд░ рдкрд┐рдЫрд▓реЗ 5 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдореИрдВ рдкрд╛рдпрдерди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХрдВрдкрдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬреЛ рдорд╛рд╕реНрдХреЛ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд░рд╛рдП рдХреЗ рдЖрд╡рд╛рд╕ рд╢рд╛рдпрдж CIAN рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред CYAN рдкреНрд░рддрд┐ рдорд╛рд╣ 7 рдорд┐рд▓рд┐рдпрди рдЦрд░реАрджрд╛рд░ рдФрд░ рдХрд┐рд░рд╛рдпреЗрджрд╛рд░ рд╣реИред рдЗрди рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╣рд░ рдорд╣реАрдиреЗ, рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рдорд┐рд▓ рдЬрд╛рддреА рд╣реИред

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

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

рд▓реЗрдЦ рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрдВрдЧреЗред

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

рдмрд╛рдЗрдирд░реА рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


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

рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рдХреЛ рдПрдХ рдФрд░ рджрд░реНрдж рд╣реИ - рдпрд╣ рдЬреАрдЖрдИрдПрд▓ рд╣реИ ред рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЗрдЦ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрд╛ рдЬрд╛рдП, рдЗрд╕ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдИ рдЧрдИ рд╣реИред

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

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

рдмрд╛рдЗрдирд░реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрдм рд╣реЛрддреА рд╣реИ?


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

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

90% рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреА рдЧрд╣рди рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж, рдХреБрдЫ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИред

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

рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рд░рд▓ рд╕реА / рд╕реА ++ рдХреЛрдб рдмрдирд╛рдиреЗ рдФрд░ рдмрд╣реБрдд рджрд░реНрдж рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рдордп рдореЗрдВ рдПрдХ рдЯреЗрд▓реАрдХреЙрдо рдСрдкрд░реЗрдЯрд░ рдореЗрдВ рдРрд╕рд╛ рдХрд┐рдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рдерд╛ - рдореБрдЭреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ, рдЕрдм рдпрд╣ рдмрд╣реБрдд рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрд╕рд┐рдВрдХреЛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдард┐рди рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ , рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рдерд╛ред рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреНрд░реИрд╢, рдмрдбрд╝реЗ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдФрд░ рдЬреИрд╕реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ C / C ++ рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдмрд╛рдЗрдирд░реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреБрдЫ " рд╕реБрдкрд░рдлрд╛рд╕реНрдЯ рднрд╛рд╖рд╛ " рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдХрд░рдирд╛ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╡рд┐рд╢рд╛рд▓ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдирд╣реАрдВ, рдРрд╕рд╛ рди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

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

5 рд╕реБрдирд╣рд░реЗ рдирд┐рдпрдо


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

  1. рдХреЗрд╡рд▓ рдирд┐рд░реНрдпрд╛рдд рдХрд╛рд░реНрдп ред рдмрд╛рдЗрдирд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкрд╛рдЗрдерди рдореЗрдВ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдХрд╛рдлреА рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рд╣реИрдВ: рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрджрд░реНрдн рдЕрдЦрдВрдбрддрд╛ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИред
  2. рд░реИрдкрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред рдХреБрдЫ рдУрдУрдкреА рдХреЗ рдмрд╣реБрдд рд╢реМрдХреАрди рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдХреНрд╖рд╛рдПрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рднрд▓реЗ рд╣реА рдпреЗ рдХрдХреНрд╖рд╛рдПрдВ рди рд╣реЛрдВ, рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рд░реИрдкрд░ рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ: рдПрдХ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВ, рдПрдХ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдпрд╛ рдПрдХ рдирд┐рдпрдорд┐рдд рдкрджреНрдзрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рджреЗрд╢реА C / C ++ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред рдХрдо рд╕реЗ рдХрдо, рдпрд╣ рдбреЗрдЯрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ C / C ++ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдареАрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд░реИрдкрд░ рдореЗрдВ рдЖрдк рдЗрд╕реЗ рд╣реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░ рд╕рдХреЗред
  3. рдЖрдк рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЕрдЬрдЧрд░ рд╕реЗ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ - рдпрд╣ рднреА рдПрдХ рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐ рд╕реА рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдЯрд╛рдЗрдк рдХрд╛рд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдХрд┐рд╕реА рднреА рджреЗрд╢реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯрд╛рдЗрдк рдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд╣реА рд╣реИрдВрдбрд▓рд░ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрд╛рдпрдерди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдкрд╛рдпрдерди рдХреЛрдб рдореЗрдВ рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИред
  4. рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ ред рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдЬреАрд╕реА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рда рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЯреБрдХрдбрд╝рд╛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рдо рдЗрд╕ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдФрд░ рдХрдИ рдереНрд░реЗрдбреНрд╕ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд╕рдордп, GC рдХреЗрд╡рд▓ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдФрд░ рдЗрд╕ рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдЙрд╕реА рдХреЛрдб рдореЗрдВ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╢реВрдиреНрдп рд╕рдВрджрд░реНрдн рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╡рд┐рднрд╛рдЬрди рджреЛрд╖ рд╣реИред рд╣рдореЗрдВ рдХрдЪрд░реЗ рдХреЗ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреА рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ, рдЪрд╛рд░, рдкреВрд░реНрдгрд╛рдВрдХ, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдмрд╛рдЗрдирд░реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░




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

рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдФрд░ рдЙрдкрдХрд░рдг


рдмрд╛рдЗрдирд░реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рддрд░реАрдХрд╛ рдиреЗрдЯрд┐рд╡ рд╕реА / рд╕реА ++ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдорд╛рдирдХ рдкрд╛рдпрдерди рддрдХрдиреАрдХ рд╣реИред

рдореВрд▓ C / C ++ рдПрдХреНрд╕рдЯреЗрдВрд╢рди


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

name = 'DateTime.mxDateTime.mxDateTime' src = 'mxDateTime/mxDateTime.c' extra_compile_args=['-g3', '-o0', '-DDEBUG=2', '-UNDEBUG', '-std=c++11', '-Wall', '-Wextra'] setup ( ... ext_modules = [(name, { 'sources': [src], 'include_dirs': ['mxDateTime'] , extra_compile_args: extra_compile_args } )] ) 

рджреЗрд╢реА рд╕реА / рд╕реА ++ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ

  • рджреЗрд╢реА рддрдХрдиреАрдХред
  • рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • рдкреНрд░рд▓реЗрдЦрди рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд░рд╛рд╢рд┐ред
  • рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореВрд▓ рдирд┐рд╡рд╛рд╕реА C / C ++ рдПрдХреНрд╕рдЯреЗрдВрд╢рди

  • рдЙрдЪреНрдЪ рдкреНрд░рд╡реЗрд╢ рджрд╣рд▓реАрдЬред
  • рд╕реАред рдХрд╛ рдЬреНрдЮрд╛рди рдЖрд╡рд╢реНрдпрдХ рд╣реИред
  • Boost.Pythonред
  • рдЦрдВрдбрди рджреЛрд╖ред
  • рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпрд╛рдБред

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

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрдбрд╝реЗ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдкреНрд░рд╡реЗрд╢ рд╕реАрдорд╛ рд╣реИ - рд╣рд░ рдХреЛрдИ рд╕реА рдХреЛ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХ рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рджреЗрд╢реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ: рдкрд╣рд▓реЗ, C рд╕реАрдЦреЗрдВ; рдлрд┐рд░ рдХрдорд╛рдВрдб рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ; рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВред

Boost.Python C ++ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ рдЗрди рд╕рднреА рд░реИрдкрд░реЛрдВ рд╕реЗ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдореВрд░реНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо Pyon рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдорд╛рдЗрдирд╕, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдХреБрдЫ рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкрд╕реАрдирд╛ рдмрд╣рд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкреВрд░реЗ рдмреВрд╕реНрдЯ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред

 #include <Python.h> static PyObject*addList_add(Pyobject* self, Pyobject* args){ PyObject * listObj; if (! PyARg_Parsetuple( args, "", &listObj)) return NULL; long length = PyList_Size(listObj) int i, sum =0; //   return Py_BuildValue("i", sum); } 

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╛рдпрдерди рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо addList_add рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╛рдо рджреЗрдирд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдбрд▓рд┐рд╕реНрдЯ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рд╣реИ, _add рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЦреБрдж PyObject рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ PyObject рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддрд░реНрдХ рднреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдорд╛рдирдХ рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЯрдкрд▓ рддрд░реНрдХ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рд╣реИ - рд╢рд╛рдмреНрджрд┐рдХ "рдУ" рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ listObj рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╣рдо рдорд╛рдирдХ рдкрд╛рдпрдерди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреА рд▓рдВрдмрд╛рдИ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ: PyList_Sizeред рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣рд╛рдВ рд╣рдо рдЕрднреА рднреА рдЗрд╕ рд╡реЗрдХреНрдЯрд░ рдХреА рд▓рдВрдмрд╛рдИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдкрд╛рдпрдерди рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Py_BuildValue рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ "i" рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдФрд░ рдпреЛрдЧ рдЪрд░ рд╣реАред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рд░ рдХреЛрдИ рд╕рдордЭрддрд╛ рд╣реИ - рд╣рдо рд╕реВрдЪреА рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рдпреЛрдЧ рдкрд╛рддреЗ рд╣реИрдВред рдереЛрдбрд╝рд╛ рдФрд░ рдЖрдЧреЗ рдЪрд▓рддреЗ рд╣реИрдВред

 for(i = 0; i< length; i++){ //     //   Python- PyObject* temp = PyList_GetItem(listObj, i); //  ,      //     C long long elem= PyLong_AsLong(temp); sum += elem; } 

рдпрд╣ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ, рдЗрд╕ рд╕рдордп, listObj рдПрдХ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕реВрдЪреА рдЖрдЗрдЯрдо рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред Python.h рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рд╣реИред

рд╣рдо рдЕрд╕реНрдерд╛рдпреА рд╣реЛ рдЧрдП, рд╣рдо рдЗрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЖрдк C рдореЗрдВ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 //  static char addList_docs[] = "add( ): add all elements of the list\n"; //    static PyMethodDef addList_funcs[] = { {"add", (PyCFunction)addList_add, METH_VARARGS, addList_docs}, {NULL, NULL, 0, NULL} }; 

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

рдпрд╣ рд╕рдм рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ moduledef рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдордиреЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕реЗ рд╡рд╣рд╛рдВ рд░рдЦрд╛ рд╣реИред

 static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, "addList example module", -1, adList_funcs, NULL, NULL, NULL, NULL }; 

PyModuleDef_HEAD_INIT рдПрдХ рдорд╛рдирдХ рдкрд╛рдпрдерди рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред -1 рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдпрд╛рдд рдЪрд░рдг рдореЗрдВ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЬрдм рд╣рдордиреЗ рд╕реНрд╡рдпрдВ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдпрд╛ рдерд╛, рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдЬрдЧрд░ рд╣рдореЗрд╢рд╛ init рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП addList рдХреЗ рд▓рд┐рдП PyInit_addList рдмрдирд╛рдПрдВред рдЕрдм рдЗрдХрдЯреНрдареЗ рдврд╛рдВрдЪреЗ рд╕реЗ, рдЖрдк PyModule_Create рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдЦреБрдж рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред

 PyInit_addList(void){ PyObject *module = PyModule_Create(&mdef); If (module == NULL) return NULL; PyModule_AddStringConstant(module, "__author__", "Bruse Lee<brus@kf.ch>:"); PyModule_addStringConstant (Module, "__version__", "1.0.0"); return module; } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ, рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред рдЬрдм рд╣рдо C / C ++ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдкрд╛рдпрдерди рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕реАрд▓рд┐рдП, рд▓рдЧрднрдЧ 15 рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд╢реНрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдЬреАрд╡рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, SWIG рддрдХрдиреАрдХ рджрд┐рдЦрд╛рдИ рджреАред

рдмрдбрд╝рд╛ рдШреВрдБрдЯ


рдпрд╣ рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдкрд╛рдпрдерди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕реЗ рдЕрдореВрд░реНрдд рдФрд░ рджреЗрд╢реА рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ Native C / C ++ рдХреЗ рд╕рдорд╛рди рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдкрд╡рд╛рдж рд╣реИрдВред

SWIG рдкреЗрд╢реЗрд╡рд░реЛрдВ:

  • рд╕реНрдерд┐рд░ рддрдХрдиреАрдХред
  • рдкреНрд░рд▓реЗрдЦрди рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ред
  • рдмрдВрдзрди рд╕реЗ рдЕрдЬрдЧрд░ рддрдХ рд╕рд╛рд░ред

SWIG рдХреЗ рд╡рд┐рдкрдХреНрд╖:

  • рд▓рдВрдмрд╛ рд╕реЗрдЯрдЕрдкред
  • рдЬреНрдЮрд╛рди рд╕реАред
  • рдЦрдВрдбрди рджреЛрд╖ред
  • рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпрд╛рдБред
  • рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдПрдХреАрдХрд░рдг рдХреА рдЬрдЯрд┐рд▓рддрд╛ред

рдкрд╣рд▓рд╛ рдЛрдг рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдирд╛ рджрд┐рдорд╛рдЧ рдЦреЛ рджреЗрдВрдЧреЗ ред рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ-рдбреЗрдврд╝ рджрд┐рди рдмрд┐рддрд╛рдпрд╛ред рдлрд┐рд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдЖрд╕рд╛рди рд╣реИред SWIG 3.x рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЕрдм рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, SWIG рдХреА рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред



example.c рдПрдХ C рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлрд╝рд╛рдЗрд▓ example.i рд╣реИ, рдЬреЛ SWIG рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, SWIG рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЪрд▓рд╛рдПрдВ, рдЬреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ example_wrap.c рдмрдирд╛рддрд╛ рд╣реИ - рдпрд╣ рд╡рд╣реА рдЖрд╡рд░рдг рд╣реИ рдЬреЛ рд╣рдо рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдХрд░рддреЗ рдереЗред рдпрд╣реА рд╣реИ, SWIG рд╕рд┐рд░реНрдл рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЖрд╡рд░рдг рдмрдирд╛рддрд╛ рд╣реИ, рддрдерд╛рдХрдерд┐рдд рдкреБрд▓ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЬреАрд╕реАрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рджреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЗрдВ (рдЙрджрд╛рд╣рд░рдг.рдУ рдФрд░ example_wrap.o) рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╣рдо рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред

Cython


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

рд╕рд╛рдЗрдерди рдкреЗрд╢реЗрд╡рд░реЛрдВ:

  • рд▓реЛрдХрдкреНрд░рд┐рдп рддрдХрдиреАрдХред
  • рдмрд╣реБрдд рд╕реНрдерд┐рд░ рд╣реИред
  • рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • рдЕрдЪреНрдЫрд╛ рдкреНрд░рд▓реЗрдЦрдиред

рд╕рд╛рдЗрдерди рдХрд╛ рд╡рд┐рдкрдХреНрд╖:

  • рдЦреБрдж рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ред
  • рдЬреНрдЮрд╛рди рд╕реАред
  • рдЦрдВрдбрди рджреЛрд╖ред
  • рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпрд╛рдБред

рд╡рд┐рдкрдХреНрд╖, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣реИред рдореБрдЦреНрдп рдПрдХ рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ, рдЬреЛ C / C ++ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдФрд░ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред

рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╛рдпрдерди рдХреЛрдб рдХреЛ рджреЗрд╢реА рдХреЛрдб рд▓рд┐рдЦрдХрд░ рд╕рд╛рдЗрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд╡рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рд╣реИрдВ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рд╕рд╛рдЗрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдЖрдВрджреНрд░реЗрдИ рд╢реНрд╡реЗрддрд▓реЛрд╡ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦреЗрдВред

ctypes


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

рд▓реЗрдХрд┐рди рдПрдлрдПрдлрдЖрдИ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдУрд╡рд░рд╣реЗрдб рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдкреБрд▓реЛрдВ, рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд╕рднреА рд╣реИрдВрдбрд▓рд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╣рдордиреЗ рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдб рдХреА рд╣реИ, рдФрд░ рдЗрд╕ рд╕рдордп рдкрд╛рдпрдерди рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреНрдпрд╛ рд╣реИред рдХреЗрд╡рд▓ рдЬрдм рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпреЗ рдкреБрд▓ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

CTypes рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ:

  • рджреЗрд╢реА рддрдХрдиреАрдХред
  • рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИред
  • рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
  • рдЖрдк рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рдкрдХреНрд╖

  • рдУрд╡рд░рд╣реЗрдб рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
  • рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпрд╛рдБред


 from ctypes import * #load the shared object file Adder = CDLL('./adder.so') #Calculate factorial res_int = adder.fact(4) print("Fact of 4 = " + str(res_int)) 

рдЙрдиреНрд╣реЛрдВрдиреЗ adder.so рд▓рд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ред рд╣рдо рджреЗрд╢реА рдкрд╛рдпрдерди рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рднреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рд╕рдм рдХреЗ рдмрд╛рдж, рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ: "рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ, рд╣рд░ рдЬрдЧрд╣ рд╕реА, рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?"ред

рд░рддреБрдЖ


рдПрдХ рд╕рдордп рдореЗрдВ, рдореИрдВрдиреЗ рднрд╛рд╖рд╛ рдХреЛ рдЙрдЪрд┐рдд рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВред

рдЬрдВрдЧ рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ:

  • рд╕реБрд░рдХреНрд╖рд┐рдд рднрд╛рд╖рд╛ред
  • рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕реНрдерд┐рд░ рдЧрд╛рд░рдВрдЯреАред
  • рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб ( PyO3 ) рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдВрдЧ рдХреА рд╡рд┐рдкрдХреНрд╖:

  • рдЙрдЪреНрдЪ рдкреНрд░рд╡реЗрд╢ рджрд╣рд▓реАрдЬред
  • рд▓рдВрдмрд╛ рд╕реЗрдЯрдЕрдкред
  • рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпрд╛рдБред
  • рдереЛрдбрд╝рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИред
  • рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдУрд╡рд░рд╣реЗрдбред

рдЬрдВрдЧ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рдо рдХрд╛ рд╕реНрд╡рдд: рдкреНрд░рдорд╛рдг рд╣реИред рд╕реНрд╡рдпрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рднрд╛рд╖рд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реНрд╡рдпрдВ рд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕реА рд╕рдордп, рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЗрд╕реЗ рдХреЛрдб рд╢рд╛рдЦрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

PyO3 рдЯреАрдо рдХреА рдмрджреМрд▓рдд, Rust рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ Python рдмрд╛рдЗрдВрдбрд░реНрд╕ рд╣реИрдВ, рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓реНрд╕ рд╣реИрдВред

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

рдХреЛрдб рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг, рд╡рд╣реА рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдХреА рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪ рдХреА рдереАред

 #![feature(proc_macro)] #[macro_use] extern crate pyo3; Use pyo3::prelude::*; /// Module documentation string 1 #[py::modinit(_addList)] fn init(py: Python, m: PyModule) -> PyResult <()>{ py_exception!(_addList, EmptyListError); /// Function documentation string 1 #[pufn(m, "run", args= "*", kwargs="**" )] fn run_py(_py: Python, args: &PyTuple, kwargs: Option<&PyDict>) -> PyResult<()> { run(args, kwargs) } #[pyfn(m, "run", args="*", kwatgs="**")] fn run_py(_py: Python, args: &PyTuple, kwargs: Option<&PyDict>) -> PyResult<()>{ run(args,kwargs) } #[pyfn(m,"add")] fn add(_py: Python, py_list: &PyList) -> PyResult<i32>{ let mut sum : i32 = 0 match py_list.len() { /// Some code Ok(sum) } Ok(()) } 

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

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

рдЖрдЗрдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реИред

 #[pyfn(m, "add", py_list="*")] fn add(_py: Python, py_list: &PyList) -> PyResult<i32> { match py_list.len() { 0 =>Err(EmptyListError::new("List is empty")), _ => { let mut sum : i32 = 0; for item in py_list.iter() { let temp:i32 = match item.extract() { Ok(v) => v, Err(_) => { let err_msg: String = format!("List item {} is not int", item); return Err(ItemListError::new(err_msg)) } }; sum += temp; } Ok(sum) } } } 

рд╕рдорд╛рди рдХреЛрдб рдЬреЛ C / C ++ / Ctypes рдореЗрдВ рдерд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ Rust рдореЗрдВред рд╡рд╣рд╛рдБ рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рддрдХ PyObject рдХреЛ рдХрд╛рд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрджрд┐ рд╣рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдорд┐рд▓рд╛, рддреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреНрдпрд╛ рд╣рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд┐рд▓реЗрдЧрд╛? рд╣рд╛рдБ, рд╣рдореЗрдВ рдПрдХ SystemEerror рдорд┐рд▓реЗрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реЗрдЯ рдореНрдпреВрдЯ рдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ : i32 = 0; рд╣рдо рд╕реВрдЪреА рд╕реЗ рдПрдХ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ i32 рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╣рдо рдЗрд╕ рдХреЛрдб рдХреЛ рдЖрдЗрдЯрдо рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд▓рд┐рдЦ рдкрд╛рдПрдВрдЧреЗред рдХрд╕реНрдЯрдорд░ (), рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд╕реНрдЯ рдХрд░реЗрдВред рдЬрдм рд╣рдордиреЗ рд╕рдВрдХрд▓рд┐рдд рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ, i32 рдХреЛ Rust рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╣реЗрдЧрд╛: "рдЬрдм i32 рдирд╣реАрдВ рддреЛ рдХреЗрд╕ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░реЗрдВ"ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ i32 рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдорд╛рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ?


рдЗрд╕ рдЫреЛрдЯреЗ рджреМрд░реЗ рдХреЗ рдмрд╛рдж рд╣рдо рд╕реЛрдЪреЗрдВрдЧреЗ рдХрд┐ рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ?

рдЬрд╡рд╛рдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рд╕реНрд╡рд╛рдж рдФрд░ рд░рдВрдЧ рдХрд╛ рд╣реИред

рдореИрдВ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрдХрдиреАрдХ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдирд╣реАрдВ рджреВрдВрдЧрд╛ред



рдмрд╕ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛:

  • SWIG рдФрд░ C / C ++ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ C / C ++ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛, рд╕рдордЭреЗрдВ рдХрд┐ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡рд░рд╣реЗрдб рдХреЛ рдЙрдХрд╕рд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдиреНрдпреВрдирддрдо рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рдо рджреЗрд╢реА рдкрд╛рдпрдерди рддрдХрдиреАрдХ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред
  • рд╕рд╛рдЗрдерди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рдЗрдирдкреБрдЯ рдереНрд░реЗрд╢реЛрд▓реНрдб рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдЪреНрдЪ рд╡рд┐рдХрд╛рд╕ рдЧрддрд┐ рд╣реИ, рдФрд░ рдпрд╣ рднреА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рд╣реИред
  • CTypes рдХреА рдХреАрдордд рдкрд░, рдореИрдВ рдЖрдкрдХреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмрдбрд╝реЗ рдУрд╡рд░рд╣реЗрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЬрдм рд╣рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рддреЛ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд╕рдХрддреА рд╣реИред
  • рдореИрдВ рд░рд╕реНрдЯ рдХреЛ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рдЬреЛ рд╕реА / рд╕реА ++ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЬрдВрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╡рд╣рди рдХрд░рддреА рд╣реИред


рдХрд╛рдЧрдЬрд╛рдд рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ

рд╣рдо 7 рд╕рд┐рддрдВрдмрд░ рддрдХ рдореЙрд╕реНрдХреЛ рдкрд╛рдпрдерди рдХреЙрдиреНрдл ++ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕ рд╕рд░рд▓ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреЗрдВ рдХрд┐ рдЖрдк рдкрд╛рдпрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реБрдирдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдореИрдВ рд╢рд╛рдВрдд рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

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

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


All Articles