рдЬрдм рдкрд╛рдпрдерди рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдпрд╛рдж рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬреЗрдВ

рдЬрд╝реЗрди рдкрд╛рдпрдерди



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

рдПрдХ рдмрд╛рд░ рдореЗрд░рд╛ рдзреНрдпрд╛рди рдЗрд╕ рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рд╣реБрдЖ:

рд╕реБрдВрджрд░ рдмрджрд╕реВрд░рдд рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ

UPDATE: рд╣реИрдХрд░ рдиреНрдпреВрдЬрд╝ рдХреЗ рдЗрд╕ рд▓реЗрдЦ рдкрд░ рдХрд╛рдлреА рдЪрд░реНрдЪрд╛рдПрдБ рд╣реБрдИрдВред рдЙрдирд╕реЗ рдХреБрдЫ рд╕реБрдзрд╛рд░ред

рдореБрдЭреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рджреЗрдВ рдЬреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рджреЛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

#----------------------------------------------------------------------- halve_evens_only = lambda nums: map(lambda i: i/2, filter(lambda i: not i%2, nums)) #----------------------------------------------------------------------- def halve_evens_only(nums): return [i/2 for i in nums if not i % 2] 


рдкрд╛рдпрдерди рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рдЪреАрдЬреЛрдВ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ



рджреЛ рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди:

  a, b = b, a 


рд╕реНрд▓рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЪрд░рдг рддрд░реНрдХред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  a = [1,2,3,4,5] >>> a[::2] # iterate over the whole list in 2-increments [1,3,5] 


рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ 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=[]): # Don't do this def function(x, l=None): # Way better if l is None: l = [] 


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



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

  d = {1: "1", 2: "2", 3: "3"} for key, val in d.items() # builds complete list when called. for key, val in d.iteritems() # calls values only when requested. 


рдпрд╣ рд╕реАрдорд╛ рдФрд░ 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() # factory function for creating tuple subclasses with named fields deque # list-like container with fast appends and pops on either end Counter # dict subclass for counting hashable objects OrderedDict # dict subclass that remembers the order entries were added defaultdict # dict subclass that calls a factory function to supply missing values 


рдЕрджреНрдпрддрди: рдЬреИрд╕рд╛ рдХрд┐ рд╣реИрдХрд░ рд╕рдорд╛рдЪрд╛рд░ рдкрд░ рдХрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдбрд┐рдлреЙрд▓реНрдЯ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ ред

  >>> from collections import Counter >>> c = Counter("abracadabra") >>> c['a'] 5 




  __eq__(self, other) # Defines behavior for the equality operator, ==. __ne__(self, other) # Defines behavior for the inequality operator, !=. __lt__(self, other) # Defines behavior for the less-than operator, <. __gt__(self, other) # Defines behavior for the greater-than operator, >. __le__(self, other) # Defines behavior for the less-than-or-equal-to operator, <=. __ge__(self, other) # Defines behavior for the greater-than-or-equal-to operator, >=. 


рдХрдИ рдЕрдиреНрдп рдЬрд╛рджреБрдИ рддрд░реАрдХреЗ рд╣реИрдВред



  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 рдХрд░реНрдо рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдпрд╣ рдореБрдЭреЗ рдбреНрд░рд╛рдлреНрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдкреАрдПрдо рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдФрд░ рд╡рд░реНрддрдиреА рдкрд░ рднреЗрдЬреЗрдВ, рдФрд░ рдЕрдзрд┐рдХ рди рдбрд╛рд▓реЗрдВ =)

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


All Articles