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
