Sun, 30 Mar 2003 14:45:38 -0800
Ka-Ping Yee wrote:
> In many classes, __init__ exercises authority. An obvious C type with
> the same problem is the "file" type (being able to ask a file object
> for its type gets you the ability to open any file on the filesystem).
> But many Python classes are in the same position -- they acquire
> authority upon initialization.
Just out of curiosity wouldn't you say that part of the capability zen
is that capabilities that allow you to turn global strings into objects
should either not exist or be very segmented from other capabilities?
(in fact I remember discussing this with you at some Python conference!)
In capdesk, I believe you drag a capability for a file from one window
to another so that the "drop target" never needs to know or care what
the filename was.
So it might be better to separate the authority from the __init__ than
to separate constructors from classes. Arguably it is better to add to
the library than to change the language.
x = zipfile.Zipfile(securefile("foo.txt").reader())