рдкрд╛рдпрдерди рдмрд╣реБрдд рд╕реА рдореЗрдореЛрд░реА рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХреИрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдП?

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


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рд╣реИ, рдЬреЛ рд╢реБрджреНрдз рдкрд╛рдпрдерди рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ RAM рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред


рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╛рдпрдерди рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ x , y , z рд╕рд╛рде рдЕрдВрдХ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдо рд╕реЗ рд╕рдордиреНрд╡рдпрд┐рдд рдореВрд▓реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред


dict


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


 >>> ob = {'x':1, 'y':2, 'z':3} >>> x = ob['x'] >>> ob['y'] = y 

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


 >>> print(sys.getsizeof(ob)) 240 

рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реА рдореЗрдореЛрд░реА рд▓реЗрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:


рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛рдЯреНрд░реЗрд╕ рдХрд╛ рдЖрдХрд╛рд░
1000000240 рдПрдордмреА
100000002.40 рдЬреАрдмреА
10000000024 рдЬреАрдмреА

рдХрдХреНрд╖рд╛ рдЙрджрд╛рд╣рд░рдг


рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрдВрдж рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:


 class Point: # def __init__(self, x, y, z): self.x = x self.y = y self.z = z >>> ob = Point(1,2,3) >>> x = ob.x >>> ob.y = y 

рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг рдХреА рд╕рдВрд░рдЪрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ:


рдореИрджрд╛рдирдЖрдХрд╛рд░ (рдмрд╛рдЗрдЯреНрд╕)
PyGC_Head24
PyObject_HEAD16
__weakref__8
__dict__8
рдХреБрд▓:56

рдпрд╣рд╛рдВ __weakref__ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рддрдерд╛рдХрдерд┐рдд рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ, __dict__ рдлрд╝реАрд▓реНрдб рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 64-рдмрд┐рдЯ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ 8 рдмрд╛рдЗрдЯреНрд╕ рдкрд░ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ)ред рдкрд╛рдпрдерди 3.3 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдПрдХ рд╕рд╛рдЭрд╛ рд╢рдмреНрджрдХреЛрд╢ рдХреБрдВрдЬреА рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдореГрддрд┐ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдЯреНрд░реЗрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░рддрд╛ рд╣реИ:


 >>> print(sys.getsizeof(ob), sys.getsizeof(ob.__dict__)) 56 112 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдирд┐рдпрдорд┐рдд рд╢рдмреНрджрдХреЛрд╢ ( dict ) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдкрджрдЪрд┐рд╣реНрди рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ:


рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛рдЯреНрд░реЗрд╕ рдХрд╛ рдЖрдХрд╛рд░
1000000168 рдПрдордмреА
100000001.68 рдЬреАрдмреА
10000000016.8 рдЬреАрдмреА

рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг рд╕реНрдореГрддрд┐ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдирд┐рд╢рд╛рди рдЕрднреА рднреА рдмрдбрд╝рд╛ рд╣реИред


__Slots__ рдХреЗ рд╕рд╛рде рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрджрд╛рд╣рд░рдг


рд╕реНрдореГрддрд┐ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд┐рд╢рд╛рди рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдореА __dict__ рдФрд░ __weakref__ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ __slots__ рд╕рд╛рде "рдЯреНрд░рд┐рдХ" рд╕реЗ __slots__ :


 class Point: __slots__ = 'x', 'y', 'z' def __init__(self, x, y, z): self.x = x self.y = y self.z = z >>> ob = Point(1,2,3) >>> print(sys.getsizeof(ob)) 64 

рдореЗрдореЛрд░реА рдореЗрдВ рдЯреНрд░реЗрд╕ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ:


рдореИрджрд╛рдирдЖрдХрд╛рд░ (рдмрд╛рдЗрдЯреНрд╕)
PyGC_Head24
PyObject_HEAD16
рдПрдХреНрд╕8
y8
z8
рдХреБрд▓:64

рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ __slots__ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдореГрддрд┐ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЯреНрд░реЗрд╕ рдХрд╛рдлреА рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:


рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛рдЯреНрд░реЗрд╕ рдХрд╛ рдЖрдХрд╛рд░
100000064 рдПрдордмреА
10000000640 рдПрдордмреА
1000000006.4 рдЬреАрдмреА

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рдореЗрдВ рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рдЯреНрд░реЗрд╕ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рд╣реИред


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


 >>> pprint(Point.__dict__) mappingproxy( .................................... 'x': <member 'x' of 'Point' objects>, 'y': <member 'y' of 'Point' objects>, 'z': <member 'z' of 'Point' objects>}) 

__slots__ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ __slots__ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред рдирд╛рдо namedlist.namedlist рдлрд╝рдВрдХреНрд╢рди __slots__ рд╕рд╛рде рд╡рд░реНрдЧ рдХреЗ рд╕рдорд╛рди рдПрдХ рд╡рд░реНрдЧ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддрд╛ рд╣реИ:


 >>> Point = namedlist('Point', ('x', 'y', 'z')) 

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


рдЯрдкрд▓


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


 >>> ob = (1,2,3) >>> x = ob[0] >>> ob[1] = y #  

рдЯреБрдкрд▓ рдЙрджрд╛рд╣рд░рдг рдХрд╛рдлреА рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИрдВ:


 >>> print(sys.getsizeof(ob)) 72 

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


рдореИрджрд╛рдирдЖрдХрд╛рд░ (рдмрд╛рдЗрдЯреНрд╕)
PyGC_Head24
PyObject_HEAD16
ob_size8
[0]8
[1]8
[2]8
рдХреБрд▓:72

Namedtuple


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


рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП namedtuple рдлрд╝рдВрдХреНрд╢рди namedtuple рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


 >>> Point = namedtuple('Point', ('x', 'y', 'z')) 

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


  class Point(tuple): # @property def _get_x(self): return self[0] @property def _get_y(self): return self[1] @property def _get_y(self): return self[2] # def __new__(cls, x, y, z): return tuple.__new__(cls, (x, y, z)) 

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


рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛рдЯреНрд░реЗрд╕ рдХрд╛ рдЖрдХрд╛рд░
100000072 рдПрдордмреА
10000000720 рдПрдордмреА

рд░рд┐рдХреЙрд░реНрдбрдХреНрд▓рд╛рд╕: рдЬреАрд╕реА рдХреЗ рдмрд┐рдирд╛ рдирд╛рдорд╛рдВрдХрд┐рдд рдирд╛рдорд╛рдВрдХрд┐рдд рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд


рдЪреВрдВрдХрд┐ tuple рдФрд░, рддрджрдиреБрд╕рд╛рд░, namedtuple рд╡рд░реНрдЧ рдЧреИрд░-рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ ob.x рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдм рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдиреЗрдордкреНрд▓реЗ рд╡реИрд░рд┐рдПрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рд╣реИред рдЪреВрдВрдХрд┐ рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЯрдкрд▓ рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдХрдИ рд╡рд┐рд╡рд┐рдзрддрд╛рдПрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред рд╣рдо рд░рд┐рдХреЙрд░реНрдбрдХреНрд▓рд╛рд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рд░реЗрдЯрд┐рдВрдЧ рдорд┐рд▓реА рдереАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреА рдорджрдж рд╕реЗ tuple рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЯреНрд░реЗрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЯреНрд░реЗрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред


рд░рд┐рдХреЙрд░реНрдбрдХреНрд▓рд╛рд╕ рдкреИрдХреЗрдЬ рдореЗрдВ, рдкреНрд░рдХрд╛рд░ recordclass.mutabletuple рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд▓рдЧрднрдЧ рдЯреНрдпреВрдкрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд░реНрдерди рднреА рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЙрдк-рд╡рд░реНрдЧ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдирд╛рдорд╛рдВрдХрд┐рддреЛрдВ рдХреЗ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирдП рдорд╛рдиреЛрдВ рдХреЛ рдлрд╝реАрд▓реНрдб рдореЗрдВ (рдирдП рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдП рдмрд┐рдирд╛) рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред recordclass рдлрд╝рдВрдХреНрд╢рди, recordclass рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣, рдРрд╕реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ:


  >>> Point = recordclass('Point', ('x', 'y', 'z')) >>> ob = Point(1, 2, 3) 

рдХрдХреНрд╖рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ PyGC_Head рдХреЗ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ PyGC_Head рдмрд┐рдирд╛:


рдореИрджрд╛рдирдЖрдХрд╛рд░ (рдмрд╛рдЗрдЯреНрд╕)
PyObject_HEAD16
ob_size8
рдПрдХреНрд╕8
y8
y8
рдХреБрд▓:48

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


рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЯреНрд░реЗрд╕ рдЖрдХрд╛рд░ __slots__ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ:


рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛рдЯреНрд░реЗрд╕ рдХрд╛ рдЖрдХрд╛рд░
100000048 рдПрдордмреА
10000000480 рдПрдордмреА
1000000004.8 рдЬреАрдмреА

Dataobject


recordclass рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдХ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ: рд╕реНрдореГрддрд┐ рдореЗрдВ рднрдВрдбрд╛рд░рдг рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, __slots__ рд╕рд╛рде рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ __slots__ , рд▓реЗрдХрд┐рди рдЪрдХреНрд░реАрдп рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рддрдВрддреНрд░ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рд╡рд░реНрдЧ рдХреЛ recordclass.make_dataclass рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ recordclass.make_dataclass рд╣реИ:


  >>> Point = make_dataclass('Point', ('x', 'y', 'z')) 

рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд░реНрдЧ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИред


рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ recordclass.dataobject рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд╡рд░реНрдЧ рдШреЛрд╖рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:


 class Point(dataobject): x:int y:int z:int 

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдХрдХреНрд╖рд╛рдПрдВ рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреА рдЬреЛ рдкрд░рд┐рдкрддреНрд░ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рддрдВрддреНрд░ рдореЗрдВ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВред рд╕реНрдореГрддрд┐ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреА рд╕рдВрд░рдЪрдирд╛ __slots__ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди PyGC_Head рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреЗ рдмрд┐рдирд╛:


рдореИрджрд╛рдирдЖрдХрд╛рд░ (рдмрд╛рдЗрдЯреНрд╕)
PyObject_HEAD16
рдПрдХреНрд╕8
y8
y8
рдХреБрд▓:40

 >>> ob = Point(1,2,3) >>> print(sys.getsizeof(ob)) 40 

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


 mappingproxy({'__new__': <staticmethod at 0x7f203c4e6be0>, ....................................... 'x': <recordclass.dataobject.dataslotgetset at 0x7f203c55c690>, 'y': <recordclass.dataobject.dataslotgetset at 0x7f203c55c670>, 'z': <recordclass.dataobject.dataslotgetset at 0x7f203c55c410>}) 

рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдЖрдХрд╛рд░ CPython рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╕рдВрднрд╡ рд╣реИ:


рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛рдЯреНрд░реЗрд╕ рдХрд╛ рдЖрдХрд╛рд░
100000040 рдПрдордмреА
10000000400 рдПрдордмреА
1000000004.0 рдЬреАрдмреА

Cython


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


 cdef class Python: cdef public int x, y, z def __init__(self, x, y, z): self.x = x self.y = y self.z = z 

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдореЗрдореЛрд░реА рдХрд╛ рдЖрдХрд╛рд░ рднреА рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ:


 >>> ob = Point(1,2,3) >>> print(sys.getsizeof(ob)) 32 

рд╕реНрдореГрддрд┐ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЯреНрд░реЗрд╕ рдореЗрдВ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИ:


рдореИрджрд╛рдирдЖрдХрд╛рд░ (рдмрд╛рдЗрдЯреНрд╕)
PyObject_HEAD16
рдПрдХреНрд╕4
y4
y4
рдЦрд╛рд▓реА рд╣реИ4
рдХреБрд▓:32

рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рддрд┐рдпрд╛рдВ рдХрд╛ рдЖрдХрд╛рд░ рдЫреЛрдЯрд╛ рд╣реИ:


рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛рдЯреНрд░реЗрд╕ рдХрд╛ рдЖрдХрд╛рд░
100000032 рдПрдордмреА
10000000320 рдПрдордмреА
1000000003.2 рдЬреАрдмреА

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


Numpy


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


 >>> Point = numpy.dtype(('x', numpy.int32), ('y', numpy.int32), ('z', numpy.int32)]) 

рд╢реВрдиреНрдп рдФрд░ рдЖрд░рдУ рдХреЗ рд╕рд╛рде рдЖрд░рдореНрдн рдХрд┐рдП рдЧрдП рдП рдФрд░ N рддрддреНрд╡реЛрдВ рдХреЛ рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


  >>> points = numpy.zeros(N, dtype=Point) 

рд╕рд░рдгреА рдХрд╛ рдЖрдХрд╛рд░ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╕рдВрднрд╡ рд╣реИ:


рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛рдЯреНрд░реЗрд╕ рдХрд╛ рдЖрдХрд╛рд░
100000012 рдПрдордмреА
10000000120 рдПрдордмреА
1000000001.20 рдЬреАрдмреА

рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдФрд░ рддрд╛рд░реЛрдВ рдХреЗ рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
C int рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХреЗ рдореВрд▓реНрдп рдореЗрдВред рдХрд┐рд╕реА рдПрдХрд▓ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдПрдХрд▓ рддрддреНрд╡ рд╡рд╛рд▓реЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ред рдЙрд╕рдХрд╛ рдЯреНрд░реИрдХ рдЗрддрдирд╛ рдХреЙрдореНрдкреИрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛:


  >>> sys.getsizeof(points[0]) 68 

рдЗрд╕рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд╛рдпрдерди рдХреЛрдб рдореЗрдВ, numpy рдкреИрдХреЗрдЬ рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред


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


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

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


All Articles