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

techi eth techieth at gmail.com
Fri Apr 27 04:54:26 EDT 2018


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
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pythondotnet/attachments/20180427/383fd1ff/attachment.html>


More information about the PythonDotNet mailing list