PyWart: More surpises via "implict conversion to boolean" (and other steaming piles!)
ian.g.kelly at gmail.com
Thu Feb 13 23:00:05 CET 2014
On Feb 12, 2014 9:16 PM, "Steven D'Aprano" <steve at pearwood.info> wrote:
> On Tue, 11 Feb 2014 07:36:34 -0800, Travis Griggs wrote:
> > On Feb 10, 2014, at 10:30 PM, Steven D'Aprano <steve at pearwood.info>
> > wrote:
> >>> 1. Parenthesis should not be required for parameter- less
> >>> functions.
> >> Of course they should. Firstly, parameter-less functions are a code-
> >> smell, and ought to be discouraged. Secondly, even if you have a good
> >> reason for using one -- for example, random.random -- then the
> >> difference between referring to the object and calling the object
> >> should be clear.
> > Interesting. Can you clarify or provide some links to the
> > "parameter-less functions are a code-smell" bit?
> Functions map a value to another value. They can be one-to-one, or many-
> to-one. (Mathematically, they cannot be one-to-many or many-to-many,
> that's called a relation.) What about zero-to-one?
> If the function always returns the same result, e.g.:
> def spam():
> return "spam spam spam"
That's still one-to-one. There is no such thing as a zero-to-one mapping.
Mathematical functions map a single value to a single value. To represent
multi-argument functions then, the single input takes on the value of an
ordered sequence. The input value of a 0-argument function then is the
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-list