pypy を使用して、いくつかの python スクリプトを C 言語に翻訳しています。次のような python クラスがあるとします。
class A:
def __init__(self):
self.a = 0
def func(self):
pass
これA.funcは関数ではなくバインドされていないメソッドであるため、pypy で変換できないことに気付きました。そこで、コードを少し変更します。
def func(self):
pass
class A:
def __init__(self):
self.a = 0
A.func = func
def target(*args):
return func, None
pypyfuncで翻訳できるようになりました。ただし、試してみるtranslate.py --source test.pyと、例外[translation:ERROR] TypeError: signature mismatch: func() takes exactly 2 arguments (1 given)が発生します。selfまだ引数に注釈を付けていないためかもしれません。ただし、これselfにはタイプ A があるため、クラスに注釈を付けるにはどうすればよいですか?
お読みいただき、ご回答いただきありがとうございます。