伙计们,我刚刚开始使用python并且对可选参数感到困惑,比如我有这样的程序:
class B:
pass
class A:
def __init__(self, builds = B()):
self.builds = builds
Run Code Online (Sandbox Code Playgroud)
如果我创建A两次
b = A()
c = A()
Run Code Online (Sandbox Code Playgroud)
并打印他们的构建
print b.builds
print c.builds
Run Code Online (Sandbox Code Playgroud)
我发现他们正在使用完全相同的对象,
<__main__.B instance at 0x68ee0>
<__main__.B instance at 0x68ee0>
Run Code Online (Sandbox Code Playgroud)
但它不是我想要的,因为如果b改变一些内部构建状态,c对象中的那个也将被改变.
是否可以通过使用此可选参数语法每次重新创建此可选参数?
我试图在django中使用url模板标签,但没有幸运,
我像这样定义了我的urls.py
urlpatterns = patterns('',
url(r'^analyse/$', views.home, name="home"),
url(r'^analyse/index.html', views.index, name="index"),
url(r'^analyse/setup.html', views.setup, name="setup"),
url(r'^analyse/show.html', views.show, name="show"),
url(r'^analyse/generate.html', views.generate, name="generate"),
Run Code Online (Sandbox Code Playgroud)
我在这个视图中定义了url模式
{% url 'show'%}
Run Code Online (Sandbox Code Playgroud)
然后我收到此错误消息
渲染时捕获异常:反向''show''参数'()'和关键字参数'{}'未找到.
原始回溯(最近一次调用最后一次):文件"/Library/Python/2.5/site-packages/django/template/debug.py",第71行,在render_node结果= node.render(context)文件"/ Library/Python /2.5/site-packages/django/template/defaulttags.py",第155行,在渲染中nodelist.append(node.render(context))文件"/Library/Python/2.5/site-packages/django/template/defaulttags .py",第382行,在渲染中引发NoReverseMatch:反向''show'',参数'()'和关键字参数'{}'未找到.
我想知道为什么django无法渲染?什么是在tempalte中定义它的正确方法?
嗨我使用scala(2.8.1)来实现一个使用actor的耗时任务处理程序,但是,我无法在运行单元测试时清理它,所以我的单元测试永远挂起.
我怎么称呼方法是:
val configs = new ProjectsConfig("XXXXXXXXXXXXX")
try {
configs.start
configs.init//time consuming stuff
} finally {
configs.destory
configs.stop
}
Run Code Online (Sandbox Code Playgroud)
我打算做的是保持actor的引用并在每个on上调用exit,代码片段如下:
但是,似乎效果不佳.在这种情况下如何清理所有演员?
class ProjectsConfig(val url: String) extends Actor {
private var actors: List[Actor] = List()
private object Stop
def init = {
val caller = this;
for (projectConfig <- list) {
val myActor: Actor = actor {
caller ! projectConfig.instantiate
}
actors = actors ::: List(myActor)
}
}
def act() {
while (true) {
receive {
case project: …Run Code Online (Sandbox Code Playgroud) 我想执行一些一次性操作,例如启动后台线程并在Django服务器启动时每30分钟填充一次缓存作为初始化操作,因此它不会阻止用户访问网站.我应该把所有这些代码放在Django中?
__init__.py文件中是行不通的.Django服务器多次调用它(是什么原因?)