> But I'm used to exploiting side effect, and sometimes forget this rule > in my own classes. IS THERE A WAY to have the following produce a > runtime error? > > def f(): > x = 5 > # no return > > y = f()
Typically, this will produce a runtime error fairly quickly, namely when you *use* the (presumed) return value of f(). You would normally try to perform some computation with y, or invoke methods on it - and then you see that it is None. So while it is not possible to get an exception on the assignment, you will usually get a runtime error sooner or later (most of the time, sooner). FWIW, pylint -e reports on your code E: 5: Assigning to function call which doesn't return Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list