从自身继承的Python类?这是怎么回事?

2024-09-29 07:19:10 发布

您现在位置: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

这是干什么的?在

切中要害的是,我在Eclipse中使用PyDev,它将其标记为错误。我想情况并非如此。不管怎样让Eclipse知道这很好?在


Tags: selfcomauthapihttpfacebookdefdocumentation
3条回答

它使用从另一个模块导入的AuthProxy(检查导入)并从中派生。在

“前一个”AuthProxy是由__generate_proxies创建的(这不是很好的代码,其中甚至有一个exec和{}),但是作者还希望在它上面定义一些方法。在

其中的class语句不会使类从自身继承,它创建一个类对象,并将当前值AuthProxy作为超类,然后将类对象赋给变量“AuthProxy”,可能会覆盖先前分配的它继承的AuthProxy。在

本质上,它和x = f(x)差不多:x本身不是f的值,没有循环依赖性——只有旧的x和新的x。旧的AuthProxy和新的AuthProxy。在

相关问题 更多 >