因此,我已按照此处的说明进行操作。 我更改了几个部分,因为我想访问具有不同功能的 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 类(但根本没有效率)?
欢迎任何建议。谢谢