开发者

I'd like to know what's going on this Python program. I've included the code

Here's the code: http://paste.pocoo.org/show/238093/

My main questions right now are:

  1. Is Line 37 mainly the gist of this program? And does it simply calculate this once and then print the result? Ex: self.start + key*self.step with start=1, key=4, step=2 [prints 9]

  2. where does the variable 'value' actually come into play here? Line 39.

  3. Not worried about the "Exceptions" part of the program. I pretty much understand what it's doing.

  4. Lastly, and you really don't have to answer this one as it's probably better as another question "down the road" but I really do not see how __getitem__, __setitem__...etc...you still have to write in your own code to "make it do stuff". :) I'm just not getting what's so "special" ab开发者_运维技巧out these special methods.


  1. Yes, more or less.
  2. This is the exception. If someone assigns a value to a particular index, the sequence remembers that and will return that value instead of calculating it. Note that the code here does not actually use this function.
  3. Random comment instead: the last 3 lines of the getitem function could be much more concisely implemented as return self.changed.get(key, self.start + key*self.step) -- dict.get lets you provide a default to return if a key is missing.
  4. They're "special" only in that they let you override what happens when someone does yourthing[foo] or yourthing[foo] = bar. You see the first going on here; the second is what happens if someone does s[5] = 100 -- the 100 ends up as the value of a __setitem__ call.
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜