How to pass class instance to a method?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon Nov 26 23:10:48 EST 2012


On Mon, 26 Nov 2012 22:14:59 -0500, Dave Angel wrote:

> On 11/26/2012 05:18 PM, Steven D'Aprano wrote:
>> On Mon, 26 Nov 2012 16:58:47 -0500, Dave Angel wrote:
>>
>>> In a statically typed language, the valid types are directly implied
>>> by the function parameter declarations, while in a dynamic language,
>>> they're defined in the documentation, and only enforced (if at all) by
>>> the body of the function.
>>
>> Well that certainly can't be true, because you can write functions
>> without *any* documentation at all, and hence no defined type
>> restrictions that could be enforced:
> 
> That's backwards.  Any body should be a bug in that case.  It doesn't
> matter what you pass to a function that is unspecified, it's behavior is
> undefined.  Calling it is inherently illegal.

Have you ever programmed before? *wink*

Seriously, as much as we would like to have full documentation of every 
piece of code before it is written, such a thing is awfully heavyweight 
for all but the biggest projects.

In practice, many functions never get documented at all, or only 
partially documented. Whether this is a good thing or not, it is a fact, 
and no mainstream language *requires* you to write documentation, nor is 
the documentation is used to determine runtime behaviour. If it did, it 
would be code, not documentation.

In lightweight or agile software development methodologies ("Bingo!") or 
exploratory development, you often write the code before you know what it 
does, or even what you want it to do. E.g. I'll sometimes have a vague 
idea of what I want a function or method to do, and go through three or 
four iterations of writing code before it is stable enough to begin 
documenting it.

Given the practical reality that documentation is often neglected, there 
is a school of thought that says that *code* is the One True source of 
information about what the code does, that documentation is at best a 
hint or at worst completely redundant. While I think that's a bit 
extreme, I can see the point. If function f() puts the cat on the mat, 
but is documented as putting the hat on the cat, how do you know whether 
the documentation is wrong or the code?


[...]
>> Please, everybody, before replying to this thread, please read this:
>>
>> http://cdsmith.wordpress.com/2011/01/09/an-old-article-i-wrote/
> 
> I read part of it, and it's more than I care to read tonight.  It seems
> to be written by an anonymous person.  By jumping around in his blog, I
> see a lot of interesting articles, but i haven't yet figured out who he
> is.  Does he have a name?  A degree, a job in computers, a reputation?

Does it matter? Surely what he says should stand or fail on its own 
merits, not by who he is.

He has a name, although it seems to be hard to find on his current blog: 
Chris Smith. As for the rest, I don't know.



-- 
Steven



More information about the Python-list mailing list