代码之家  ›  专栏  ›  技术社区  ›  Bialecki

从自身继承的python类?这是怎么工作的?

  •  5
  • Bialecki  · 技术社区  · 14 年前

    对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知道这是好的吗?

    4 回复  |  直到 14 年前
        1
  •  14
  •   Devin Jeanpierre    14 年前

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

    基本上,它与 x = f(x) :x不是f本身的值,没有循环依赖关系--只有旧x和新x,旧authproxy和新authproxy。

        2
  •  3
  •   Ignacio Vazquez-Abrams    14 年前

    它使用的是从其他模块导入的authproxy(检查您的导入)并从中派生。

        3
  •  3
  •   Messa    14 年前

    “前”authproxy由 __generate_proxies (这不是很好的代码,甚至还有一个 exec eval 但是作者还想在上面定义一些方法。

        4
  •  1
  •   commagere    14 年前

    要让Eclipse停止抱怨,请执行以下操作:

    类AuthProxy(AuthProxy):@UndefinedValueable