我遇到了一个有趣/令人沮丧的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
这是一个返回不同EventTag的工厂函数 绝对的网址。
如果我们称之为一切正常,但我们称之为两次 (它从for循环调用)1.和2. print语句给我们 新视图,但3.仍然使用我们调用的第一个值 工厂功能。
有什么想法吗?
答案 0 :(得分:0)
如果没有看到更多代码,我唯一的猜测是你会看到类似这样的内容:http://me.veekun.com/blog/2011/04/24/gotcha-python-scoping-closures/