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

Denis Akhiyarov denis.akhiyarov at gmail.com
Sun Apr 29 23:04:01 EDT 2018


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> 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> 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>
>> wrote:
>>
>>> 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
>>> *Se**nt:* 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("Cla
>>> ss");
>>>
>>>
>>>
>>>                 //Calling module method
>>>
>>>                 PyObject result = testClassModule.InvokeMethod("test");
>>>
>>>                 Console.WriteLine("Test method result = {0}",
>>> result.ToString());
>>>
>>>
>>>
>>>                 PyObject classTest = testClassModule.GetAttr("Class
>>> Test");
>>>
>>>                 *classTest.InvokeMethod("Initialize ");
>>> -----------------------------> Error*
>>>
>>>                 classTest.InvokeMethod("Execute");
>>>
>>>            }
>>>
>>>             PythonEngine.Shutdown();
>>>
>>>
>>>
>>>
>>>
>>> _________________________________________________
>>> Python.NET mailing list - PythonDotNet at python.org
>>> https://mail.python.org/mailman/listinfo/pythondotnet
>>>
>>>
>>
>
> _________________________________________________
> Python.NET mailing list - 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/20180429/76772b58/attachment-0001.html>


More information about the PythonDotNet mailing list