1

因此,我已按照此处的说明进行操作。 我更改了几个部分,因为我想访问具有不同功能的 python 代码中的许多类。为了学习,我将上面链接中的代码修改为:

class Multiply: 

    def __init__(self): 
         self.a = 6 
         self.b = 5 

   def multiply(self):
         c = self.a*self.b
         print 'The result of', self.a, 'x', self.b, ':', c
         return c

   def multiply2(self, a, b, d):
        e = a*b*d
        print 'The result of', a, 'x', b, 'x', d, e
        return e

class Add:      
   def multiply3(self, k, l):
       f = k+l
       print 'The result of', k, '+', l, ':', f
       return f

并将 call_class.c 的某些部分从这里修改为

pValue = PyObject_CallMethod(pInstance, argv[3], "(iii)", arg[0], arg[1], arg[2]);

编译 call_function.c 并尝试从 Add 类调用 multiply3 后,出现此错误TypeError: multiply3() takes exactly 3 arguments (4 given)

我知道这是因为那个 pValue,但我只是想我怎么能用不同的函数输入来调用这些类。我只是想知道一些解决方案: 1. 我应该创建多个 pValue 吗?2. 我应该创建多个call_class.c 来调用不同的python 类(但根本没有效率)?

欢迎任何建议。谢谢

4

0 回答 0