Tres Seaver wrote:
Philipp von Weitershausen wrote:
Chris Withers wrote:
Christian Theune wrote:
The problem you have is to provide a specification for the 'str'
There are a couple of problems here...
1. str is both a "function" and a "class"
Nope. It's a class since Python 2.2.
2. I was to register the "function" str as an adapter for, say, the
"class" int to the "class" str, so there's not factory for the adapter,
since it's a function
Right, as an *input* of the adaption it's ok just to specify a class.
But the output obviously always has to be specified by an interface.
Otherwise the whole point of using of adaption is perverted...
As discussed elsewhere, you shouldn't need the marker interface, as you
can adapt classes.
Let's create a marker interface that promises everything that 'str' does:
"""A marker for the 'str' interface."""
Like adapting to None?
Heh, good point.
Thnk of cataloguing / indexing use cases: adapting the catalogued
object to a string value (or tuple, or whatever) using named adapters is
a very "natural" way to make indexing pluggable: what is *unnatural*
(or at least a "dead chicken") is the requirement to adapt to an
'IString', when what I really want is a 'str'.
Well, part of Python idea is duck typing and requiring that you get a
'str' may be too much. Perhaps you would really only like to get
something that quacks like str. OTOH, perhaps you absolutely want a
'str' and that use case should perhaps be allowed...
http://worldcookery.com -- Professional Zope documentation and training
Zope3-dev mailing list