我遇到了一个有趣/令人沮丧的Python问题,我无法解决。 我们有以下代码:
def eventtag_with_view_factory(view):
print "==1", view
class Cls(models.EventTag):
# means this class does not make django change the database
class Meta:
proxy = True
print "==2", view
@permalink
def get_absolute_url(self):
print "==3", view
return ("search_query_view", (),
{'query': quote('#') + self.name, 'view': view})
return Cls
它是一个工厂函数,返回具有不同 绝对URL。你知道吗
如果我们叫它一次,一切正常,但是当我们叫它两次 (从for循环调用)1。和2。打印报表给我们 新的观点,但3。我们仍然使用第一个值 工厂功能。你知道吗
有什么想法吗?你知道吗
如果没有看到更多的代码,我唯一的猜测是您看到了这样的内容:http://me.veekun.com/blog/2011/04/24/gotcha-python-scoping-closures/
相关问题 更多 >
编程相关推荐