[Python.NET] Error in calling Python class method from C#

Stefan Schukat SSchukat at dspace.de
Thu Apr 26 07:24:14 EDT 2018


Hello,

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

    Stefan

From: PythonDotNet [mailto:pythondotnet-bounces+sschukat=dspace.de at 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 at 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();


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pythondotnet/attachments/20180426/96ad0aa3/attachment.html>


More information about the PythonDotNet mailing list