小编Jus*_* Li的帖子

Docker中的Django shell模式

我正在学习如何使用这个官方教程在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实现它.

python django shell docker docker-compose

11
推荐指数
2
解决办法
3419
查看次数

如何在不提交的情况下在 git 中切换和保存?

我正在一个分支上工作,突然我不得不切换到另一个分支来修复一个紧急错误。问题是我对当前分支所做的更改仍然一团糟,我不想提交并留下一些杂乱无章的提交消息。

有什么方法可以在不提交的情况下保存当前更改?

git github

6
推荐指数
3
解决办法
2万
查看次数

使用yield的树遍历的时间复杂度是多少?

深度优先树遍历的示例:

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工作或者编写这样的递归生成器根本不可行.

python yield time-complexity

5
推荐指数
1
解决办法
283
查看次数

未加权图中的最大流量

最大流问题通常通过edmond-karp算法来解决,该算法构建残差图,并使用BFS寻找增广路径。

但通常最大流问题是为加权图定义的。对于未加权的图,我们可以简单地将每条边的权重视为1,但我想知道是否有更简单的算法来解决未加权的版本。

algorithm graph-algorithm max-flow edmonds-karp

5
推荐指数
1
解决办法
985
查看次数

三栏新闻源(如 google+)的最小长度?

我正在实施一个新闻源程序,类似于Google+

该问题可以抽象如下:

给定一个块列表(高度不同但宽度与列的宽度相同),我们如何将文本排列在三列中以使页面的总长度最小?

请注意,块不能重叠,并且块不遵循任何顺序。

algorithm

5
推荐指数
1
解决办法
41
查看次数

类方法和静态方法的python装饰器?

我正在尝试为一个实例方法编写一个装饰器,如下所示:

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。我认为装饰器大多只是将它接收到的所有参数传递给包装器,并且只修改结果。如何修改装饰器以使其适用于classmethodstaticmethod

python decorator

3
推荐指数
1
解决办法
3576
查看次数

当我们有AJAX时,为什么需要<form />?

我刚刚开始学习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的一个优点是它可以是异步的,我发现它真的很甜,因为你在等待服务器的响应时仍然可以做其他事情,并且可能保留当前页面并且不会丢失你的输入.(当我提交表单,我必须将所有输入传输到服务器并再次返回到界面,然后丢失它们.

由于表格现在仍然使用和流行,我想它有一些我不知道的优点.

javascript forms ajax jquery

2
推荐指数
1
解决办法
570
查看次数

如何在场景后面实现排序(key = lambda x :)?

一个例子:

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用于比较不同的名称,但它可以有两种不同的实现:

  1. 首先计算每个名称的所有键,然后以某种方式将键和名称绑定在一起,然后对它们进行排序.p
  2. 每次进行比较时计算密钥

第一种方法的问题是它必须定义另一个数据结构来绑定密钥和数据.第二种方法的问题是密钥可能被多次计算,也就是说,name.split()[-1].lower()将被执行多次,这非常耗时.

我只是想知道Python实现的方式sorted().

python sorting lambda python-internals

2
推荐指数
1
解决办法
437
查看次数