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