[Python-Dev] [Python-3000] Python 3000 Status Update (Long!) (original) (raw)

Georg Brandl g.brandl at gmx.net
Tue Jun 19 17:27:58 CEST 2007


Walter Dörwald schrieb:

If a PEP is called for, I'd be happy to at least co-author it. Codecs are a major exception to Guido's law: Never have a parameter whose value switches between completely unrelated algorithms. I don't think that applies here. This is more like import(): depending on the first parameter, completely different things can happen. Yes, the same import algorithm is used, but in the case of bytes.encodebytes, the same algorithm is used to find and execute the codec. What would a registry of tranformation algorithms buy us compared to a module with transformation functions?

Easier registering of custom transformations. Without a registry, you'd have to monkey-patch a module.

The function version is shorter:

transform.rot13('foo') compared to: 'foo'.transform('rot13')

Yes, that's a very convincing argument :)

If each transformation has its own function, these functions can have their own arguments, e.g. transform.bz2encode(data: bytes, level: int=6) -> bytes

Of course str.transform() could pass along all arguments to the registered function, but that's worse from a documentation viewpoint, because the real signature is hidden deep in the registry.

I don't think transformation functions need arguments.

Georg



More information about the Python-Dev mailing list