On 05/31/2018 07:49 AM, Dan Strohl wrote:
Is it possible to override the assignment of built in types to the shorthand 
representations?   And if not, is it a reasonable thought to consider adding?

For example, right now, if I do:

test = "this is a string",

I get back str("this is a string").  What if I want to return this as 
my_string("this is a string")  (OK, I know I have a recursive issue in my example, but 
hopefully you get the point).

Or;

Test = ['item1', 'item2', 'item3'] returns a list, what if I want to add 
functionality to all lists in my module?  (and yes, I know I could simply not 
do [] and always do my_list('item1', 'item2', 'item3']

I am envisioning something in the header like an import statement where I could 
do;

override str=my_string
override list=my_list

This would only be scoped to the current module and would not be imported when 
that module was imported.

Thoughts?

Dan Strohl


My problem with this idea is that it breaks expectations. If I know one thing as a Python programmer, it's that 'Bob' is a str. Each time and every time. If you could override the meaning of basic constant identifiers to where I have no idea how they behave, that creates an easy thing to miss that changes the entire meaning of the things you've written.

What's the use case here? And why is that use case better than, for instance, simply defining a function in the module that does the things you want done to strings? Not everything has to be an object method.

--
Rob Gaddi, Highland Technology -- www.highlandtechnology.com
Email address domain is currently out of order.  See above to fix.
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to