Hello,

you missed either @staticmethod decorator or the self argument for the 
Initialize method.

    Stefan

From: PythonDotNet [mailto:pythondotnet-bounces+sschukat=dspace...@python.org] 
On Behalf Of techi eth
Sent: Wednesday, April 25, 2018 2:38 PM
To: A list for users and developers of Python for .NET <pythondotnet@python.org>
Subject: [Python.NET] Error in calling Python class method from C#

Hi,

I am facing issue while calling python class function in C# programme. Can 
anyone give me hint what is wrong in below programme.While running I am getting 
error in invoking Initialize() function of class.

Python module <Class.py> :
def test():
 print "Test called"
 return 1

class ClassTest:
  def __init__(self)

  def Initialize ():
   print " Initialize called"
   return 1

  @staticmethod
  def Execute():
   print "Execute called"
   return 1

C# Console Programme code snapshot :
PythonEngine.Initialize();
            using (Py.GIL())
            {
                PyObject testClassModule = PythonEngine.ImportModule("Class");

                //Calling module method
                PyObject result = testClassModule.InvokeMethod("test");
                Console.WriteLine("Test method result = {0}", 
result.ToString());

                PyObject classTest = testClassModule.GetAttr("ClassTest");
                classTest.InvokeMethod("Initialize "); 
-----------------------------> Error
                classTest.InvokeMethod("Execute");
           }
            PythonEngine.Shutdown();


_________________________________________________
Python.NET mailing list - PythonDotNet@python.org
https://mail.python.org/mailman/listinfo/pythondotnet

Reply via email to