On 10/12/2014 2:45 PM, Ian Kelly wrote:
On Sun, Oct 12, 2014 at 6:55 AM, roro codeath <rorocode...@gmail.com> wrote:
How to implement it in my class?

class Str(str):
     def __init__(self, *args, **kwargs):
         pass

Str('smth', kwarg='a')

The error is coming from the __new__ method. Because str is an
immutable type, you should override the __new__ method, not __init__.

or, if one is mere adding a method, do not add __new__ either.

Example:

class Str(str):
     def __new__(cls, *args, **kwargs):
         return super().__new__(cls, args[0])

Str('smth', kwarg='a')
'smth'



--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to