Я использую 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, так как я могу аннотировать класс?
Спасибо за ваше чтение и ответ.
target()
? - person martineau   schedule 22.11.2010translation:ERROR
? Я не вижу никаких вызововfunc()
в коде. Какое отношение ошибка имеет к аннотированию класса? - person martineau   schedule 22.11.2010