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/

Reply via email to