标签: generator

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

寻找一个好的Image Sprite生成器工具

我正在寻找一个像样的图像精灵生成器.我试过http://spritegen.website-performance.org/,但它不够"聪明",不足以处理多个图像尺寸,并将它们与图像之间的空白空间合并.

有什么建议???

css-sprites generator sprite

31
推荐指数
2
解决办法
5万
查看次数

文档(phpdoc)生成器的最佳方式(产生的方法)

对于phpdocumentor2,记录作为生成器的方法的最佳方法是什么?

我认为不是@return真的有用yield,但我似乎找不到任何合适的选择.

这只是等待phpdoc迎头赶上的问题吗?

php generator phpdoc php-5.5

31
推荐指数
3
解决办法
6474
查看次数

如何编写生成器类?

我看到很多生成器函数的例子,但我想知道如何为类编写生成器.可以说,我想把斐波纳契系列写成一个类.

class Fib:
    def __init__(self):
        self.a, self.b = 0, 1

    def __next__(self):
        yield self.a
        self.a, self.b = self.b, self.a+self.b

f = Fib()

for i in range(3):
    print(next(f))
Run Code Online (Sandbox Code Playgroud)

输出:

<generator object __next__ at 0x000000000A3E4F68>
<generator object __next__ at 0x000000000A3E4F68>
<generator object __next__ at 0x000000000A3E4F68>
Run Code Online (Sandbox Code Playgroud)

为什么self.a没有印刷价值?另外,我如何unittest为发电机写信?

python generator fibonacci

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

从调用生成器的函数返回或产生?

我有一个生成器generator和一个方便的方法 - generate_all

def generator(some_list):
  for i in some_list:
    yield do_something(i)

def generate_all():
  some_list = get_the_list()
  return generator(some_list) # <-- Is this supposed to be return or yield?
Run Code Online (Sandbox Code Playgroud)

应该generate_all return还是yield?我希望两种方法的用户都使用相同的方法,即

for x in generate_all()
Run Code Online (Sandbox Code Playgroud)

应该等于

some_list = get_the_list()
for x in generate(some_list)
Run Code Online (Sandbox Code Playgroud)

python yield return function generator

31
推荐指数
4
解决办法
1979
查看次数

为什么重新定义生成器中使用的变量会产生奇怪的结果?

我的一个朋友问我这段代码:

array = [1, 8, 15]
gen = (x for x in array if array.count(x) > 0)
array = [2, 8, 22]
print(list(gen))
Run Code Online (Sandbox Code Playgroud)

输出:

[8]
Run Code Online (Sandbox Code Playgroud)

其他元素去哪儿了?

python generator

31
推荐指数
2
解决办法
992
查看次数

yield from 与 for 循环中的yield

我的理解yield from是,它类似于yield从可迭代对象中获取每个项目。然而,我在以下示例中观察到不同的行为。

我有Class1

class Class1:
    def __init__(self, gen):
        self.gen = gen
        
    def __iter__(self):
        for el in self.gen:
            yield el
Run Code Online (Sandbox Code Playgroud)

和 Class2 的不同之处仅在于yield将 for 循环替换为yield from

class Class2:
    def __init__(self, gen):
        self.gen = gen
        
    def __iter__(self):
        yield from self.gen
Run Code Online (Sandbox Code Playgroud)

下面的代码从给定类的实例中读取第一个元素,然后在 for 循环中读取其余元素:

a = Class1((i for i in range(3)))
print(next(iter(a)))
for el in iter(a):
    print(el)
Run Code Online (Sandbox Code Playgroud)

Class1这会为和产生不同的输出Class2。对于Class1输出是

0
1
2
Run Code Online (Sandbox Code Playgroud)

Class2输出为

0
Run Code Online (Sandbox Code Playgroud)

现场演示

yield from产生不同行为的背后机制是什么?

python yield generator python-internals yield-from

31
推荐指数
1
解决办法
2823
查看次数

通过回调将函数转换为Python生成器?

Scipy最小化函数(仅用作示例),可以选择在每一步添加回调函数.所以我可以做点什么,

def my_callback(x):
    print x
scipy.optimize.fmin(func, x0, callback=my_callback)
Run Code Online (Sandbox Code Playgroud)

有没有办法使用回调函数来创建fmin的生成器版本,这样我才能做到,

for x in my_fmin(func,x0):
    print x
Run Code Online (Sandbox Code Playgroud)

似乎可能有一些产量和发送的组合,但我可以想到任何事情.

python generator coroutine

30
推荐指数
3
解决办法
5716
查看次数

C#的随机数发生器如何工作?

我只是想知道C#中的随机数生成器是如何工作的.我也很好奇我如何制作一个从1-100 生成随机整数数字的程序.

c# random numbers generator

30
推荐指数
2
解决办法
12万
查看次数

是否可以将ECMAScript 6发生器重置为其初始状态?

我的问题是:鉴于提供的(非常简单的)生成器,是否可以将生成器恢复到其原始状态以便再次使用?

var generator = function*() {
    yield 1;
    yield 2;
    yield 3;
};

var iterable = generator();

for (let x of iterable) {
    console.log(x);
}

// At this point, iterable is consumed.
// Is there a method for moving iterable back
// to the start point by only without re-calling generator(),
// (or possibly by re-calling generator(), only by using prototype 
//  or constructor methods available within the iterable object)
// so the following code would work again?

for (let …
Run Code Online (Sandbox Code Playgroud)

javascript generator ecmascript-harmony ecmascript-6

30
推荐指数
5
解决办法
5581
查看次数