Я использую pypy для перевода некоторого скрипта python на язык C. Скажите, что у меня есть класс питона так:Как я могу аннотировать класс в pypy?
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, поэтому как я могу аннотировать класс?
Благодарим вас за чтение и ответ.
Синтаксис декоратора. –
Что такое функция 'target()'? – martineau
В какую строку применяется «перевод: ERROR»? Я не вижу никаких вызовов 'func()' в коде. Какая ошибка связана с «аннотированием» класса? – martineau