]> granicus.if.org Git - python/commitdiff
Added new.instance(class, dict).
authorGuido van Rossum <guido@python.org>
Mon, 17 Jun 1996 16:56:56 +0000 (16:56 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 17 Jun 1996 16:56:56 +0000 (16:56 +0000)
Modules/newmodule.c

index afe309243b238bef82237c014a936d0df5b7e9e4..0591d3ccc0ce9fb357ad1dcbafc1f17d2e7af4c1 100644 (file)
@@ -27,6 +27,31 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "allobjects.h"
 #include "compile.h"
 
+static char new_instance_doc[] =
+"Create an instance object from (CLASS, DICT) without calling its __init__().";
+
+static object *
+new_instance(unused, args)
+       object* unused;
+       object* args;
+{
+       object* klass;
+       object *dict;
+       instanceobject *inst;
+       if (!newgetargs(args, "O!O!",
+                       &Classtype, &klass,
+                       &Dicttype, &dict))
+               return NULL;
+       inst = NEWOBJ(instanceobject, &Instancetype);
+       if (inst == NULL)
+               return NULL;
+       INCREF(klass);
+       INCREF(dict);
+       inst->in_class = (classobject *)klass;
+       inst->in_dict = dict;
+       return (object *)inst;
+}
+
 static char new_im_doc[] =
 "Create a instance method object from (FUNCTION, INSTANCE, CLASS).";
 
@@ -163,6 +188,7 @@ new_class(unused, args)
 }
 
 static struct methodlist new_methods[] = {
+       {"instance",            new_instance,           1, new_instance_doc},
        {"instancemethod",      new_instancemethod,     1, new_im_doc},
 #if 0
        {"function",            new_function,           1, new_function_doc},