On 2018-06-13 22:29, Steven D'Aprano wrote:
On Wed, Jun 13, 2018 at 10:59:34PM +0200, Michel Desmoulin wrote:
> Attaching an entire module to a type is probably worse than
> adding a slew of extra methods to the type.
>
Not my point.
str.re would not be the re module, just a namespace where to group all
regex related string methods.
That's what a module is :-)
How would this work? If I say:
"My string".re.match(...)
if str.re is "just a namespace" how will the match function know the
string it is to operate on?
str.re can be a descriptor object which "knows" which string instance
it is bound to. This kind of thing is common in many libraries. Pandas
for example has all kinds of things like df.loc[1:3],
df.column.str.startswith('blah'), etc. The "loc" and "str" attributes
give objects which are bound (in the sense that bound methods are bound)
to the objects on which they are accessed, so when you use these
attributes to do things, the effect takes account of on the "root"
object on which you accessed the attribute.
Personally I think this is a great way to reduce namespace clutter and
group related functionality without having to worry about using up all
the short or "good" names at the top level. I'm not sure I agree with
the specific proposal here for allowing regex operations on strings, but
if we do do it, this would be a good way to do it.
--
Brendan Barnwell
"Do not follow where the path may lead. Go, instead, where there is no
path, and leave a trail."
--author unknown
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/