[Python-3000] PEP 3138- String representation in Python 3000
"Martin v. Löwis"
martin at v.loewis.de
Mon May 19 23:15:45 CEST 2008
>> output_to = compressors[name](compresslevel=complevel)
>>
> Your example seems to indicate a model->sequence operation, that I would
> call 'encode'. Now the question becomes, given 'f', what makes more sense:
>
> (a) y = x.transform(f)
> (b) y = x.encode(f)
> (c) y = f(x)
>
> What do you expect the function signature of 'output_to' to be?
People brought that up in the context of stacking streams. So output_to
would have a stream interface, so you would say
(d) output_to.write(x)
(and yes, I do recognize that the ultimate receiver of the output,
e.g. the socket or such, is missing in my API)
> Is it
> callable? Is it something that is going to be a stream wrapper, that
> has .read() and .write()?
That's what I meant it to be.
I'm not quite sure why you are asking these questions.
> In this case using .transform() would seem to be a good fit because
> there is no model, but 'obj' suffers from being directionless, so it
> becomes this...
>
> ciph = plain.transform(obj.encrypt)
>
> ...which isn't substantially clearer than...
>
> ciph = obj.encrypt(plain)
It isn't substantially clearer, and *therefore* it is a good fit???
> Parametric transformations don't bother me, but that would be an
> indication that there's a lot more going on, and perhaps there are
> better (and pre-existing) labels for these functions.
If you are saying that we should call it .encrypt, not .transform:
I completely agree.
Regards,
Martin
More information about the Python-3000
mailing list