小编Red*_*ite的帖子

Python 中未定义的行为

Python 有哪些未定义的行为?语言规范中未定义的含义。我知道的唯一例子是在迭代序列时修改序列。在了解这一点之前,我曾经认为 Python 没有未定义的行为,所以我认为这是极其罕见的。

python undefined-behavior python-3.x

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

itertools 库中的 tee() 函数

这是一个从列表中获取最小值、最大值和平均值的简单示例。下面的两个函数具有相同的结果。我想知道这两个函数的区别。为什么使用itertools.tee()?它提供什么优势?

from statistics import median
from itertools import tee

purchases = [1, 2, 3, 4, 5]

def process_purchases(purchases):
    min_, max_, avg = tee(purchases, 3)
    return min(min_), max(max_), median(avg)

def _process_purchases(purchases):
    return min(purchases), max(purchases), median(purchases)

def main():
    stats = process_purchases(purchases=purchases)
    print("Result:", stats)
    stats = _process_purchases(purchases=purchases)
    print("Result:", stats)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

python tee python-itertools

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

为什么 str() 不使用 __getattribute__ 来获取 __str__ 以及如何产生效果?

当我调用str()具有重载__getattribute__方法的对象时,它似乎没有使用它,而是__str__直接调用。是否有其他一些我应该修改的功能或让它使用的方法__getattribute__?如果我__str__直接超载它会按预期运行,但这并不适合我的需求。

class A(object):
    def __getattribute__(self, attr):
        if attr == "__str__":
            return lambda: "Hello"
        return object.__getattribute__(self, attr)

x = A()

print(x)
print(str(x))
print(x.__str__())
Run Code Online (Sandbox Code Playgroud)

输出:
< main .A object at 0x000001FDF7AEA760>
< main .A object at 0x000001FDF7AEA760>
Hello

期望输出:
你好
你好
你好

python python-datamodel python-3.x getattribute

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

使用 spacy (python) 记录相似之处

sent1 = nlp("I am happy")

sent2 = nlp("I am sad")

sent3 = nlp("I am joyous")
Run Code Online (Sandbox Code Playgroud)

在这里,我想比较三个句子的相似之处,显然sent1应该更相似于sent3与相比sent1

sent1.similarity(sent2) = 0.9492464724721577

sent1.similarity(sent3) = 0.9239675481730458
Run Code Online (Sandbox Code Playgroud)

正如您从输出中看到的,sent1更类似于sent2,我的代码有什么问题吗?

python spacy

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