object.enable() anti-pattern

Steven D'Aprano steve+comp.lang.python at pearwood.info
Fri May 10 01:03:10 EDT 2013


On Thu, 09 May 2013 23:09:55 -0400, Roy Smith wrote:

> In article <518c5bbc$0$29997$c3e8da3$5496439d at news.astraweb.com>,
>  Steven D'Aprano <steve+comp.lang.python at pearwood.info> wrote:
> 
>> I must admit I am astonished at how controversial the opinion "if your
>> object is useless until you call 'start', you should automatically call
>> 'start' when the object is created" has turned out to be.
> 
> I'm sorry.  I thought you were here for an argument.

No, I'm here for the abuse.


> I think where things went pear shaped is when you made the statement:
> 
>>> There is no sensible use-case for creating a file OBJECT unless it
>>> initially wraps an open file pointer.
> 
> That's a pretty absolute point of view.  Life is rarely so absolute.

So far the only counter-examples given aren't counter-examples. One 
involves opening the file. The other involves something which isn't a 
file, but a string instead. If there are any counter-examples, they are 
impossible in Python and C: you cannot create a file object in Python 
without opening it, and you cannot create a file descriptor in C without 
opening it. But not in Pascal, which actually supports my claim that this 
is an anti-pattern: while some Pascal implementations do allow you to 
create a non-open file, you cannot do *anything* with it until you open 
it, except generate bugs.



-- 
Steven



More information about the Python-list mailing list