рдЬрд╝реЗрди рдкрд╛рдпрдерди
рднрд╛рд╖рд╛ рдХреЛ рдШреЗрд░рдиреЗ рд╡рд╛рд▓реА рд╕рдВрд╕реНрдХреГрддрд┐ рдХреЛ рд╕реАрдЦрдирд╛ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдХрд░реАрдм рдПрдХ рдХрджрдо рд▓рд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЬрд╝реЗрди рдСрдлрд╝ рдкрд╛рдпрдерди рдХреЛ рдирд╣реАрдВ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рдпрдерди рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЛ рдЦреЛрд▓реЗрдВ рдФрд░
рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ ред рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ
рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓реЗрдЧрд╛
рдПрдХ рдмрд╛рд░ рдореЗрд░рд╛ рдзреНрдпрд╛рди рдЗрд╕ рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рд╣реБрдЖ:
рд╕реБрдВрджрд░ рдмрджрд╕реВрд░рдд рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИUPDATE:
рд╣реИрдХрд░ рдиреНрдпреВрдЬрд╝ рдХреЗ рдЗрд╕ рд▓реЗрдЦ рдкрд░ рдХрд╛рдлреА рдЪрд░реНрдЪрд╛рдПрдБ рд╣реБрдИрдВред рдЙрдирд╕реЗ рдХреБрдЫ рд╕реБрдзрд╛рд░ред
рдореБрдЭреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рджреЗрдВ рдЬреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рджреЛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдкрд╛рдпрдерди рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рдЪреАрдЬреЛрдВ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ
рджреЛ рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди:
a, b = b, a
рд╕реНрд▓рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЪрд░рдг рддрд░реНрдХред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
a = [1,2,3,4,5] >>> a[::2]
рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛
x [:: - 1] x.reverse () рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд╛рдзрди рд╣реИред
>>> a[::-1] [5,4,3,2,1]
рдЕрджреНрдпрддрди: рдзреНрдпрд╛рди рд░рдЦреЗрдВ
x.reverse () рд╕реВрдЪреА рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрд▓рд╛рдЗрд╕ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддрд╛ рд╣реИ:
>>> x[::-1] [5, 4, 3, 2, 1] >>> x[::-2] [5, 3, 1]
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ
def function(x, l=[]):
рдЕрджреНрдпрддрди: рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ред рдореИрдВ
рдлреНрд░реИрдбреНрд░рд┐рдХ рд▓реБрдиреНрдз рдХреЗ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛
рд╣реВрдВ ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рдХрднреА-рдХрднреА рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рд╣рдореЗрд╢рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдбрд┐рдл рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред"
- рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рди рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХрд╛
iteritems рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛
рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝реА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИред
d = {1: "1", 2: "2", 3: "3"} for key, val in d.items()
рдпрд╣
рд╕реАрдорд╛ рдФрд░
xrange рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬрдм
xrange рдХреЗрд╡рд▓ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдиреЛрдВ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрджреНрдпрддрди: рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ ,
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ ,
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдкрд╛рдпрдерди 3.x рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
dict.keys () ,
dict.items () рдФрд░
dict.values тАЛтАЛ() рд╕реВрдЪреА рдХреЗ рдмрдЬрд╛рдп
рд╡рд┐рдЪрд╛рд░ рд▓реМрдЯрд╛рдПрдЧрд╛ред
docs.python.org/release/3.1.5/whatsnew/3.0.html#views-and-iterators-instead-of-lists- рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ
рди рдХрд░реЗрдВ:
if type(s) == type(""): ... if type(seq) == list or \ type(seq) == tuple: ...
рдмреЗрд╣рддрд░:
if isinstance(s, basestring): ... if isinstance(seq, (list, tuple)): ...
рдЖрдкрдХреЛ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
stackoverflow.com/a/1549854/504262рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ
рдмреЗрд╕рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛
рд╣реВрдВ рдФрд░
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛
рдпреВрдирд┐рдХреЛрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
>>> a=u'aaaa' >>> print isinstance(a, basestring) True >>> print isinstance(a, str) False
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ <3.0 рдореЗрдВ рджреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
str рдФрд░
рдпреВрдирд┐рдХреЛрдб :
object | | basestring / \ / \ str unicode
рдкрд╛рдпрдерди рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХрдВрдЯреЗрдирд░ рд╣реИрдВ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА
рд╕реВрдЪреА рдФрд░
рддрд╛рдирд╛рд╢рд╛рд╣реА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:рдЕрджреНрдпрддрди: рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореЗрд░реА рдУрд░ рд╕реЗ рдЕрднрджреНрд░рддрд╛ред рдХреБрдЫ рдЗрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
freqs = {} for c in "abracadabra": try: freqs[c] += 1 except: freqs[c] = 1
рдХреБрдЫ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛:
freqs = {} for c in "abracadabra": freqs[c] = freqs.get(c, 0) + 1
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░рдХрд╛рд░ рдХреЗ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
from collections import defaultdict freqs = defaultdict(int) for c in "abracadabra": freqs[c] += 1
рдЕрдиреНрдп рд╕рдВрдЧреНрд░рд╣ namedtuple()
рдЕрджреНрдпрддрди: рдЬреИрд╕рд╛ рдХрд┐ рд╣реИрдХрд░ рд╕рдорд╛рдЪрд╛рд░ рдкрд░ рдХрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ
рдбрд┐рдлреЙрд▓реНрдЯ рдХреЗ рдмрдЬрд╛рдп
рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛
рд╣реВрдВ ред
>>> from collections import Counter >>> c = Counter("abracadabra") >>> c['a'] 5
__eq__(self, other)
рдХрдИ рдЕрдиреНрдп рдЬрд╛рджреБрдИ рддрд░реАрдХреЗ рд╣реИрдВред
- рд╕рд╢рд░реНрдд рдирд┐рдпреБрдХреНрддрд┐рдпреЛрдВ
x = 3 if (y == 1) else 2
рдпрд╣ рдХреЛрдб рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ: "
3 рд╕реЗ
x рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ рдпрджрд┐
y = 1 , рдЕрдиреНрдпрдерд╛
2 рд╕реЗ
x рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ"ред рдЖрдк рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ:
x = 3 if (y == 1) else 2 if (y == -1) else 1
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рдмрд╣реБрдд рджреВрд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдЕрдЧрд░ ... рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
(func1 if y == 1 else func2)(arg1, arg2)
Func1 рдпрд╣рд╛рдБ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЕрдЧрд░
y = 1 , рдФрд░
func2 рдЕрдиреНрдпрдерд╛ред рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рддрд░реНрдХреЛрдВ
arg1 рдФрд░
arg2 рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕реА рддрд░рд╣, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднреА рд╕рдЪ рд╣реИ:
x = (class1 if y == 1 else class2)(arg1, arg2)
рдЬрд╣рд╛рдБ class1 рдФрд░ class2 рд╡рд░реНрдЧ рд╣реИрдВред
- рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдПрд▓рд┐рдкреНрд╕рд┐рд╕ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред
рдЕрджреНрдпрддрди: рд╣реИрдХрд░ рд╕рдорд╛рдЪрд╛рд░ рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛: "рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреАрд░реНрдШрд╡реГрддреНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛" рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдорд╛рд░реНрдЧ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред рдорд╛рдирдХ рдкрджрдирд╛рдо
[:] рд╣реИ ред рдореИрдВ рдЙрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдмреЗрд╕реНрдЯ рдирдореНрдкреА рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
рдПрд▓рд┐рдкреНрд╕рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣реБрдЖрдпрд╛рдореА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╕реНрд▓рд╛рдЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рдмрд╣реБрдЖрдпрд╛рдореА рд╕реНрд▓рд╛рдЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
>>> from numpy import arange >>> a = arange(16).reshape(2,2,2,2)
рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдСрд░реНрдбрд░ 2x2x2x2 рдХрд╛ 4-рдЖрдпрд╛рдореА рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИред 4 рд╡реЗрдВ рдЖрдпрд╛рдо рдХреЗ рд╕рднреА рдкрд╣рд▓реЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рджреАрд░реНрдШрд╡реГрддреНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
>>> a[..., 0].flatten() array([ 0, 2, 4, 6, 8, 10, 12, 14])
рдЬреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:
>>> a[:,:,:,0].flatten() array([ 0, 2, 4, 6, 8, 10, 12, 14])
рдкрд┐рдЫрд▓реЗ рдкреНрд░рд╕реНрддрд╛рд╡редрдХрдХреНрд╖рд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк
__getitem__ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░рдХреЗ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреА рд╡рд╕реНрддреБ рдХреЛ рд╢рдмреНрджрдХреЛрд╢ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВ:
class MyClass(object): def __init__(self, a, b, c, d): self.a, self.b, self.c, self.d = a, b, c, d def __getitem__(self, item): return getattr(self, item) x = MyClass(10, 12, 22, 14)
__Getitem__ рдХреЗ рдХрд╛рд░рдг
, рдЖрдк
x ['a'] рдХреЗ рд░реВрдк
рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ
x рдХрд╛ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдЬреНрдЮрд╛рдд рддрдереНрдп рд╣реИред
рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рдпрдерди рд╕реНрд▓рд╛рдЗрд╕
docs.python.org/library/stdtypes.html#bltin-ellipsis-object рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
def __getitem__(self, item): if item is Ellipsis: return [self.a, self.b, self.c, self.d] else: return getattr(self, item)
рд╣рдо рд╕рднреА рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
x [...] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
>>> x = MyClass(11, 34, 23, 12) >>> x[...] [11, 34, 23, 12]
рдкреБрдирд╢реНрдЪ
рдпрд╣
рд╕рддреНрдпрдЬреАрдд рд░рдВрдЬреАрд╡ рдХреЗ рдкреЛрд╕реНрдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИ - "
рдЕрдЬрдЧрд░ рдореЗрдВ рдХреЛрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╛рдж рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рдмрд╛рддреЗрдВред "
рд▓реЗрдХрд┐рди рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╣рдм рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ 0.5 рдХрд░реНрдо рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдпрд╣ рдореБрдЭреЗ рдбреНрд░рд╛рдлреНрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдкреАрдПрдо рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдФрд░ рд╡рд░реНрддрдиреА рдкрд░ рднреЗрдЬреЗрдВ, рдФрд░ рдЕрдзрд┐рдХ рди рдбрд╛рд▓реЗрдВ =)