对于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知道这很好?在
它使用从另一个模块导入的AuthProxy(检查导入)并从中派生。在
“前一个”AuthProxy是由}),但是作者还希望在它上面定义一些方法。在
__generate_proxies
创建的(这不是很好的代码,其中甚至有一个exec
和{其中的class语句不会使类从自身继承,它创建一个类对象,并将当前值AuthProxy作为超类,然后将类对象赋给变量“AuthProxy”,可能会覆盖先前分配的它继承的AuthProxy。在
本质上,它和
x = f(x)
差不多:x本身不是f的值,没有循环依赖性——只有旧的x和新的x。旧的AuthProxy和新的AuthProxy。在相关问题 更多 >
编程相关推荐