Класс Python, который наследовался себе? Как это работает?

Относительно в новинку для Python, и я видел следующую конструкцию в библиотеке PyFacebook (источник здесь: http://github.com/sciyoshi/pyfacebook/blob/master/facebook/init.py#L660). Мне любопытно, что это делает, потому что это, кажется, класс, который наследовался себе.

class AuthProxy(AuthProxy):
    """Special proxy for facebook.auth."""

    def getSession(self):
        """Facebook API call. See http://developers.facebook.com/documentation.php?v=1.0&method=auth.getSession"""
        ...
        return result

    def createToken(self):
        """Facebook API call. See http://developers.facebook.com/documentation.php?v=1.0&method=auth.createToken"""
        ...
        return token

что это делает?

Мимоходом связанный, я использую PyDev в Eclipse, и он отмечает это как ошибка. Я предполагаю, что это не имеет место. Так или иначе позволить Eclipse знать это хорошо?

5
задан Bialecki 16 January 2010 в 19:29
поделиться

3 ответа

Учебное утверждение там не делает класс наследовать само по себе, он создает объект класса с текущим значением AuthProxy в качестве суперкласса, а затем назначает класс объекта к переменной «AuthProxy», предположительно перезаписываю ранее назначенный AuthProxy, который он унаследовал.

По сути, это примерно так же, как x = f (x) : x Разве значение F на самом, нет круговой зависимости - есть только старый X, а новый х Отказ Старый ампроток и новая ампрокси.

15
ответ дан 18 December 2019 в 07:09
поделиться

Это использует AuthProxy, импортируемый из другого модуля (проверьте ваш импорт) и вытекаете из него.

3
ответ дан 18 December 2019 в 07:09
поделиться

«Бывшая» AuthProxy создается __ Generate_Proxies (это не очень хороший код, есть даже EXEC и Eval В нем :))), но автор хотел и определить некоторые методы на вершине этого.

3
ответ дан 18 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: