TypeError: 'kwarg' is an invalid keyword argument for this function
Terry Reedy
tjreedy at udel.edu
Sun Oct 12 20:49:09 EDT 2014
On 10/12/2014 2:45 PM, Ian Kelly wrote:
> On Sun, Oct 12, 2014 at 6:55 AM, roro codeath <rorocodeath at 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
More information about the Python-list
mailing list