4 ms·
> * the last one (`return None`) make me very dubious I'm curious, as someone who uses this pattern quite a bit, how would you improve on this?
by euphemize 13y ago
> * the last one (`return None`) make me very dubious
I'm curious, as someone who uses this pattern quite a bit, how would you improve on this?
- jessaustin 13y agoJust speculating here, but a func that just ends without returning, effectively returns None, so that idiom may be considered redundant. IMHO, it's often worth the additional clarity to be redundant in this way.
- StavrosK 13y agoIn [1]: def foo(): pass In [2]: foo() is None Out[2]: True
- jessaustin 13y agoI was speculating about what the original complainer meant, not about what python does... b^)
- pyre 13y agoYes, but the "Pythonic" way to do things is that "explicit is better than implicit," so I'm not sure what the original poster considers wrong with `return None`.
- migrantgeek 13y agoI do this too. I dislike when functions in languages don't explicitly return something even if that something is nothing.
- nine_k 13y agoThere are no procedures, only functions that return something. A function either returns something explicitly, or returns None. Easy.
- d23 13y agoThat line and this one lead me to believe he's full of hot air: > if a method does not use the object's state (no `self` usage) make it a `class-` or `staticmethod`. Uh, that's a little too "cookbook" for my tastes. The decision of whether to make something a class / static method or not should be decided based on what the function is doing, rather than some pointless dogma. I'm assuming he means this method: > def alarm(self): > with open(BUZZER_MP3_FILE) as f: > play_sound(f.read()) It's a design decision, and one that is particularly trivial at that. Let's say the effects an alarm ultimately change, resulting in an internal state read / write on the object. Now you have to go back and update the class despite the fact that it at a higher philosophical level one could argue that an alarm should only be triggered on an individual boiler. Point being: it's nit-pickery for nit-pickery's sake. I don't personally use `return None`, but it's certainly more explicit and is fine to use if your judgment has found it to make sense.