- Notifications
You must be signed in to change notification settings - Fork1k
Open
Description
I believe the pseudocode for object construction on page 843 is somewhat misleading:
defmake(the_class,some_arg):new_object=the_class.__new__(some_arg)ifisinstance(new_object,the_class):the_class.__init__(new_object,some_arg)returnnew_object
Firstly, it doesn't function correctly even in the simplest case.the_class.__new__(some_arg)
should be called asthe_class.__new__(the_class, some_arg)
for proper operation. Secondly, it lacks generality. I suggest the following code as a more suitable replacement:
defmake(the_class,*args,**kwargs):new_object=the_class.__new__(the_class,*args,**kwargs)ifisinstance(new_object,the_class):the_class.__init__(new_object,*args,**kwargs)returnnew_object
Metadata
Metadata
Assignees
Labels
No labels