小编pra*_*ksh的帖子

为什么这个python生成器每次都返回相同的值?

这是我的发电机:

def gen():
    state = [None]

    for i in range(5):
        state[0] = i
        yield state
Run Code Online (Sandbox Code Playgroud)

当我调用它时,这是输出:

>>> list(gen())
[[4], [4], [4], [4], [4]]
Run Code Online (Sandbox Code Playgroud)

如果我再次执行该语句,我得到的东西[4](由于[[0], [1], [2], [3], [4]]调用),但所有的相同的值[4].

python yield generator

8
推荐指数
2
解决办法
1718
查看次数

WordNet 3.1和WordNet 3.0有什么区别?

在wordnet.princeton.edu上似乎没有更改日志或类似的东西

nlp wordnet

8
推荐指数
1
解决办法
1637
查看次数

`bash:./ a.out:运行`ld`生成的可执行文件时没有这样的文件或目录`

这是C中的Hello World代码:

// a.c
#include <stdio.h>

int main() {
    printf("Hello world\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我将其编译为gcc a.c,a.out按预期生成并按预期./a.out打印Hello world...

现在,如果我单独编译和链接: gcc -c a.c; ld -lc a.o,它运行a.out生成,因为./a.out我收到消息:

bash: ./a.out: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我用Google搜索了这个错误,似乎当生成的可执行文件是32位ELF并且机器架构是64位时会发生这种情况.

我正在运行一台64位机器并运行file a.out给出:

a.out: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

编辑:

输出 uname -m

$ uname -m
x86_64
Run Code Online (Sandbox Code Playgroud)

输出 ldd a.out

$ ldd a.out …
Run Code Online (Sandbox Code Playgroud)

c linux linker gcc dynamic-linking

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

用__init__.py模拟补丁

我的代码组织如下:

DIR/A.py:

from X import Y

class A:
    ...
Run Code Online (Sandbox Code Playgroud)

DIR/__ init__.py:

from .A import A
__all__ = ['A']
Run Code Online (Sandbox Code Playgroud)

测试/ test_A.py:

class test_A:
    @patch("dir.A.Y")
    def test(self, mock_Y):
        ....
Run Code Online (Sandbox Code Playgroud)

在运行tests/test_A.py时,我(如预期的那样)得到错误:

AttributeError: <class 'dir.A.A'> does not have the attribute 'Y'
Run Code Online (Sandbox Code Playgroud)

问题是@patch("dir.A.y")试图Y在课堂上找到dir.A.A,而不是在模块中dir.A(实际存在的位置).

这显然是因为我的__init__.py.我可以通过将module-name A和class-name A更改为不同的符号来解决这个问题.

代码的组织方式,我想避免这样的命名更改.如何以正确位置patch找到的方式使用Y

python unit-testing mocking

6
推荐指数
1
解决办法
2174
查看次数

正则表达式:在python中匹配fullstop和一个单词

我是正则表达式的新手.我希望写一个匹配'.'的正则表达式.后跟一个空格后跟一个单词(不包含空格.

例如,在字符串"裂缝的声音.分裂.在冰中出现一个形状.",正则表达式应该提取".Splintering"和".A".

python regex

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

标签 统计

python ×3

c ×1

dynamic-linking ×1

gcc ×1

generator ×1

linker ×1

linux ×1

mocking ×1

nlp ×1

regex ×1

unit-testing ×1

wordnet ×1

yield ×1