public object Call(object arg0, object arg1, object arg2, object arg3, object arg4)
        {
            PythonFunction f = func as PythonFunction;

            if (inst != null)
            {
                if (f != null)
                {
                    return(f.Call(inst, arg0, arg1, arg2, arg3, arg4));
                }
                return(Ops.Call(func, inst, arg0, arg1, arg2, arg3, arg4));
            }
            else
            {
                if (!Modules.Builtin.IsInstance(arg0, DeclaringClass))
                {
                    throw BadSelf(arg0);
                }
                if (f != null)
                {
                    return(f.Call(arg0, arg1, arg2, arg3, arg4));
                }
                return(Ops.Call(func, arg0, arg1, arg2, arg3, arg4));
            }
        }
示例#2
0
        internal object Call(Frame curFrame)
        {
            if (fc != null)
            {
                return(fc.Run(curFrame));
            }
            else if (func != null)
            {
                return(func.Call());
            }

            throw Ops.TypeError("bad code");
        }