TypeError: 'kwarg' is an invalid keyword argument for this function
Dave Angel
davea at davea.name
Mon Oct 13 06:04:20 EDT 2014
Ian Kelly <ian.g.kelly at gmail.com> Wrote in message:
> 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__.
> Example:
>
> class Str(str):
> def __new__(cls, *args, **kwargs):
> return super().__new__(cls, args[0])
>
>>>> Str('smth', kwarg='a')
> 'smth'
>
It would also help to spell it the same. In the OP's
implementation, he defined kwargs, and tried to use it as
kwarg.
--
DaveA
More information about the Python-list
mailing list