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 があるため、クラスに注釈を付けるにはどうすればよいですか?
お読みいただき、ご回答いただきありがとうございます。