コード例 #1
0
ファイル: PyDynamic.cs プロジェクト: op07n/NConstrictor
        // メンバ呼び出し
        public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
        {
            PyObject tuppleArgs = PyTuple.New(args.Length);

            for (int i = 0; i < args.Length; i++)
            {
                if (args[i] is int[] intArray)
                {
                    PyTuple.SetItem(tuppleArgs, i, (PyArray <int>)intArray);
                }
                else if (args[i] is float[] floatArray)
                {
                    PyTuple.SetItem(tuppleArgs, i, (PyArray <float>)floatArray);
                }
                else if (args[i] is double[] doubleArray)
                {
                    PyTuple.SetItem(tuppleArgs, i, (PyArray <double>)doubleArray);
                }
                else if (args[i] is PyArray <float> floatPyArray)
                {
                    PyTuple.SetItem(tuppleArgs, i, floatPyArray);
                }
                else if (args[i] is PyArray <double> doublePyArray)
                {
                    PyTuple.SetItem(tuppleArgs, i, doublePyArray);
                }
                else if (args[i] is PyArray <int> intPyArray)
                {
                    PyTuple.SetItem(tuppleArgs, i, intPyArray);
                }
                else
                {
                    PyTuple.SetItem(tuppleArgs, i, (PyObject)args[i]);
                }
            }

            result = PyObject.CallObject(_pyObject[binder.Name], tuppleArgs);

            return(true);
        }
コード例 #2
0
ファイル: PyObject.cs プロジェクト: op07n/NConstrictor
 public PyObject Call(PyObject[] argNames, PyDict kw)
 {
     return(Call(_pyObject, PyTuple.Pack(argNames), kw));
 }
コード例 #3
0
ファイル: PyObject.cs プロジェクト: op07n/NConstrictor
 public PyObject Call(params PyObject[] argNames)
 {
     return(CallObject(_pyObject, PyTuple.Pack(argNames)));
 }