小编sta*_*onk的帖子

如何格式化符合PEP8的python断言语句?

如何格式化符合PEP8的长断言语句?请忽略我的例子的人为性质.

def afunc(some_param_name):
    assert isinstance(some_param_name, SomeClassName), 'some_param_name must be an instance of SomeClassName, silly goose!'
Run Code Online (Sandbox Code Playgroud)

无法将其包装在括号中,因为它会更改assert语句的行为,因为它是关键字,而不是内置函数.

python assert pep8

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

为什么Python的itertools.cycle需要创建iterable的副本?

Python的itertools.cycle()文档给出了伪代码实现:

def cycle(iterable):
    # cycle('ABCD') --> A B C D A B C D A B C D ...
    saved = []
    for element in iterable:
        yield element
        saved.append(element)
    while saved:
        for element in saved:
              yield element
Run Code Online (Sandbox Code Playgroud)

下面,它指出:"注意,该工具包的这个成员可能需要大量的辅助存储(取决于可迭代的长度)."

我基本上是沿着这条路走,除了我这样做,这不需要创建iterable的副本:

def loop(iterable):
    it = iterable.__iter__()

    while True:
        try:
            yield it.next()
        except StopIteration:
            it = iterable.__iter__()
            yield it.next()

x = {1, 2, 3}

hard_limit = 6
for i in loop(x):
    if hard_limit <= 0:
        break

    print i
    hard_limit -= 1
Run Code Online (Sandbox Code Playgroud)

打印:

1 …
Run Code Online (Sandbox Code Playgroud)

python iterator cycle python-itertools

9
推荐指数
1
解决办法
1471
查看次数

Java 8如何知道在排序时使用哪个String :: compareTo方法引用?

Java如何知道String::compareTo调用时使用哪个方法引用Collections.sort(someListOfStrings, String::compareTo);compareTo不是静态的,它需要知道value比较的"左手边".

java-8 method-reference

9
推荐指数
1
解决办法
2000
查看次数

"API限制"和"API限制警告"是什么意思?

在应用程序的见解,下API->活动和错误有关于章节:"阿比节流"和"API节流警告".但我无法找到这些部分的含义以及如何在任何地方解释它们的文档.

  1. 每个部分旁边显示的时间值是多少?即Api节流 - x分钟?
  2. 什么是"预算的一小部分"?为什么%的似乎永远不会加起来?:-P

api throttling terminology facebook-graph-api

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

为什么golang中的64位溢出没有留下位移?

我正在看看A Tour of Go,我对它们的基本类型感到困惑.示例:

MaxInt uint64     = 1<<64 - 1
Run Code Online (Sandbox Code Playgroud)

不应该在无符号的64位整数中向左移动1 64个位置导致溢出(也就是稍微移过MSB一点)?

但是,在将行更改为以下内容之前,编译器不会抱怨:

MaxInt uint64     = 1<<65 - 1

./basic-types.go:5: constant 36893488147419103231 overflows uint64
Run Code Online (Sandbox Code Playgroud)

如果我编写一些代码来迭代不同长度的左移,包括按照上面的例子中的65移动导致编译器barf,我看到两件事:

  1. 它的行为与我预期的一样,因为1<<63在MSB中1可能是uint64

  2. 它不再溢出(嗯?!?!)

码:

package main

import "fmt"

func main() {
    for i := 60; i < 66; i++ {
        var j uint64 = 1 << uint64(i) - 1
        fmt.Printf("%2d | %64b | %#18x\n", i, j, j)

    }
Run Code Online (Sandbox Code Playgroud)

输出:

60 |     111111111111111111111111111111111111111111111111111111111111 |  0xfffffffffffffff
61 |    1111111111111111111111111111111111111111111111111111111111111 | 0x1fffffffffffffff
62 |   11111111111111111111111111111111111111111111111111111111111111 …
Run Code Online (Sandbox Code Playgroud)

bit-manipulation go bitwise-operators

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

Cassandra 中 SSTable 不变性对磁盘使用的影响

根据:

http://www.datastax.com/docs/1.0/ddl/column_family#about-column-family-compression

RDBMS 看到压缩导致性能下降的原因是因为必须在磁盘上查找被覆盖的数据,解压缩,覆盖,然后重新压缩。另一方面,Cassandra 可以看到读取写入的性能提升,因为 SSTable 是不可变的,因此没有记录被覆盖,因此开销比压缩 RDBMS 小得多。

我想知道,随着 Cassandra 数据存储的持续增长,从长远来看这有什么影响?似乎唯一的结果是对更多磁盘空间的需求不断增长,这是正确的吗?

database cassandra

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

WSGI应用程序中的pyc文件有什么好处,每周多次部署?

似乎越来越频繁,我有点pyc文件运行过时的代码.

这导致部署脚本每次擦除*.pyc,否则部署似乎不会生效.

我想知道,在长期运行的WSGI应用程序中,pyc文件有什么好处(如果有的话)?据我所知,唯一的好处是改善了启动时间,但我无法想象它的重要性 - 即使它是,每次部署新代码时,你都无法真正使用旧的pyc文件.

这让我觉得最好的做法是运行带有PYTHONDONTWRITEBYTECODE环境变量集的WSGI应用程序.

我错了吗?

python django wsgi pyc

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