[Python.NET] Error in calling Python class method from C#
Stefan Schukat
SSchukat at dspace.de
Wed May 2 05:57:15 EDT 2018
Hello,
as I mentioned in my earlier mail the “self” was missing for the instance method. The rest looks fine.
Stefan
From: PythonDotNet [mailto:pythondotnet-bounces+sschukat=dspace.de at python.org] On Behalf Of techi eth
Sent: Monday, April 30, 2018 10:48 AM
To: A list for users and developers of Python for .NET <pythondotnet at python.org>
Subject: Re: [Python.NET] Error in calling Python class method from C#
I have got success on doing. I just need to get review to ensure right. Please find below code snapshot.
Class.py
def test():
print "Test called"
return 1
class ClassTest:
def __init__(self)
def Initalize(self):
print "Initalize called"
return 1
@staticmethod
def Execute():
print "Execute called"
return 1
-------------------------------------------------------------------------------------
Programme.cs
PythonEngine.Initialize();
using (Py.GIL())
{
//Creating module object
PyObject testClassModule = PythonEngine.ImportModule("Class");
//Calling module method
PyObject result = testClassModule.InvokeMethod("test");
Console.WriteLine("Test method result = {0}", result.ToString());
Dynamic classTest = testClassModule.GetAttr("ClassTest");
Dynamic tmp = classTest();
tmp.Initalize();
tmp.Execute();
}
PythonEngine.Shutdown();
return 0;
}
On Mon, Apr 30, 2018 at 11:35 AM, techi eth <techieth at gmail.com<mailto:techieth at gmail.com>> wrote:
Iron Python is having way to do the same.Please check below link.
https://stackoverflow.com/questions/579272/instantiating-a-python-class-in-c-sharp
On Mon, Apr 30, 2018 at 10:36 AM, techi eth <techieth at gmail.com<mailto:techieth at gmail.com>> wrote:
Thanks for link, I have been through most of pages but not able to found same query.
I am also not sure is this possible with Pyhton For .NET. Could you please give me below query answer.
Can i create python class instance in C# programme ????
On Mon, Apr 30, 2018 at 8:34 AM, Denis Akhiyarov <denis.akhiyarov at gmail.com<mailto:denis.akhiyarov at gmail.com>> wrote:
You may get more feedback on stackoverflow than on this mailing list for questions like this:
https://stackoverflow.com/questions/tagged/python.net?sort=newest&pageSize=50
On Fri, Apr 27, 2018 at 3:54 AM, techi eth <techieth at gmail.com<mailto:techieth at gmail.com>> wrote:
Any input on raised query. I think i am missing something very simple but not able to catch.
Thanks
On Thu, Apr 26, 2018 at 5:47 PM, techi eth <techieth at gmail.com<mailto:techieth at gmail.com>> wrote:
Yes,It will work with this way but i need to create multiple instance of same class.If you see other function (@Execute() ) with static was working.
Please give me hint of doing without static.
Thanks
On Thu, Apr 26, 2018 at 4:54 PM, Stefan Schukat <SSchukat at dspace.de<mailto:SSchukat at dspace.de>> wrote:
Hello,
you missed either @staticmethod decorator or the self argument for the Initialize method.
Stefan
From: PythonDotNet [mailto:pythondotnet-bounces+sschukat<mailto:pythondotnet-bounces%2Bsschukat>=dspace.de at python.org<mailto: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<mailto: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();
_________________________________________________
Python.NET mailing list - PythonDotNet at python.org<mailto:PythonDotNet at python.org>
https://mail.python.org/mailman/listinfo/pythondotnet
_________________________________________________
Python.NET mailing list - PythonDotNet at python.org<mailto:PythonDotNet at python.org>
https://mail.python.org/mailman/listinfo/pythondotnet
_________________________________________________
Python.NET mailing list - PythonDotNet at python.org<mailto:PythonDotNet at python.org>
https://mail.python.org/mailman/listinfo/pythondotnet
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pythondotnet/attachments/20180502/60fc8f0f/attachment-0001.html>
More information about the PythonDotNet
mailing list