我正在学习如何使用这个官方教程在docker中开发Django应用程序:https://docs.docker.com/compose/django/
我已经成功完成了教程,并且
docker-compose run web django-admin.py startproject composeexample .创建图像
docker-compose up运行应用程序
问题是:
我经常用python manage.py shellshell模式运行Django,但我不知道如何用docker实现它.
我正在一个分支上工作,突然我不得不切换到另一个分支来修复一个紧急错误。问题是我对当前分支所做的更改仍然一团糟,我不想提交并留下一些杂乱无章的提交消息。
有什么方法可以在不提交的情况下保存当前更改?
深度优先树遍历的示例:
class Node:
def __init__(self, value):
self._value = value
self._children = []
def add_child(self, child):
self._children.append(child)
def __iter__(self):
return iter(self._children)
def depth_first(self):
yield self
for c in self:
yield from c.depth_first()
Run Code Online (Sandbox Code Playgroud)
据我所知,yield from它不会立即消耗发生器,而是yield向上传递给它的调用者.
但是这个传递过程仍然存在,因此yield将从每个节点一直传递到它的根,我们可以通过重复来描述运行时间(假设它是一个简单的二叉树,但想法是一样的):
T(n)= 2*T(n/2)+Θ(n)
?(n)存在是因为此节点必须yield将从其后代传递的所有内容传递给其父节点.从上面的公式得出的时间复杂度是:
O(nlogn)
然而,树遍历的时间复杂性只有O(n)在我不使用yield或根本不使用yield from时.
我想知道我是否误解了如何yield工作或者编写这样的递归生成器根本不可行.
最大流问题通常通过edmond-karp算法来解决,该算法构建残差图,并使用BFS寻找增广路径。
但通常最大流问题是为加权图定义的。对于未加权的图,我们可以简单地将每条边的权重视为1,但我想知道是否有更简单的算法来解决未加权的版本。
我正在实施一个新闻源程序,类似于Google+。
该问题可以抽象如下:
给定一个块列表(高度不同但宽度与列的宽度相同),我们如何将文本排列在三列中以使页面的总长度最小?
请注意,块不能重叠,并且块不遵循任何顺序。
我正在尝试为一个实例方法编写一个装饰器,如下所示:
from functools import wraps
def plus_decorator(f):
@wraps(f)
def wrapper(*args, **kwargs):
return 1 + f(*args, **kwargs)
return wrapper
@plus_decorator
def return_i(i):
return i
class A(object):
@plus_decorator
def return_i(self, i):
return i
@plus_decorator
@classmethod
def return_i_class(cls, i):
return i
@plus_decorator
@staticmethod
def return_i_static(i):
return i
if __name__ == '__main__':
print return_i(1)
a = A()
print a.return_i(1)
print A.return_i_class(1)
print A.return_i_static(1)
Run Code Online (Sandbox Code Playgroud)
但是,它弹出错误:
AttributeError: 'classmethod' object has no attribute '__module__'
Run Code Online (Sandbox Code Playgroud)
我想知道为什么装饰器不能在classmethod和 上工作staticmethod。我认为装饰器大多只是将它接收到的所有参数传递给包装器,并且只修改结果。如何修改装饰器以使其适用于classmethod和staticmethod?
我刚刚开始学习JavaScript,在我的项目中,我发现无论何处使用表单,都可以使用AJAX.
一个简单的例子是:
<form id="demo_form" action="demo" method="post">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)
而ajax可以像这样使用:
$('#demo_form input[type="submit"]').click(function(){
$.ajax({
type: "POST",
url: "/demo",
dataType: "text",
data: {
username: $('#demo_form input[name="username"]').val()
}
});
});
Run Code Online (Sandbox Code Playgroud)
ajax的一个优点是它可以是异步的,我发现它真的很甜,因为你在等待服务器的响应时仍然可以做其他事情,并且可能保留当前页面并且不会丢失你的输入.(当我提交表单,我必须将所有输入传输到服务器并再次返回到界面,然后丢失它们.
由于表格现在仍然使用和流行,我想它有一些我不知道的优点.
一个例子:
names = ["George Washington", "John Adams", "Thomas Jefferson", "James Madison"]
sorted(names, key=lambda name: name.split()[-1].lower())
Run Code Online (Sandbox Code Playgroud)
我知道key用于比较不同的名称,但它可以有两种不同的实现:
第一种方法的问题是它必须定义另一个数据结构来绑定密钥和数据.第二种方法的问题是密钥可能被多次计算,也就是说,name.split()[-1].lower()将被执行多次,这非常耗时.
我只是想知道Python实现的方式sorted().