Я использую 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
Теперь func
, кажется, можно перевести с помощью pypy. Однако, когда я пытаюсь translate.py --source test.py
, возникает исключение [translation:ERROR] TypeError: signature mismatch: func() takes exactly 2 arguments (1 given)
. Я заметил, что это возможно, потому что я еще не аннотировал аргумент self
. Однако это self
имеет тип A, так как я могу аннотировать класс?
Спасибо за чтение и ответ.