问题标签 [python-datamodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
25 浏览

python - 给定一个方法,如何获取定义该方法的类?

如果这是一个类方法,这个任务很简单:

但是,它之所以有效,是因为它some_fun是一个classmethod. 让我们让它成为一个常规方法,上面的代码停止工作:

上面的代码引发了AttributeError.

MyClass如果是常规方法而MyClass.some_fun不是?some_funclassmethod

0 投票
1 回答
163 浏览

data-structures - Python中的快速数据结构,用于将一堆图像索引为重复项

简介:我想用相应的 TEX 代码替换数学百科全书上大约 280,000 张数学公式的图像。为此,我将所有这些图像(或者更好的是:它们的 URL)分类到一个包含 100'000 个列表的列表中。

每个“子列表”都包含 url 字符串,这样子列表中的每个 url 都链接到同一个图像。该列表看起来像[["https://www.encyclopediaofmath.org/legacyimages/a/a130/a130010/a1300105.png", "https://www.encyclopediaofmath.org/legacyimages/a/a010/a010080/a01008021.png", ...], ["https://www.encyclopediaofmath.org/legacyimages/w/w130/w130080/w1300801.png", "https://www.encyclopediaofmath.org/legacyimages/w/w130/w130080/w130080211.png"], ...].

对于每个子列表,我已经(或仍在处理中)为该子列表的一个图像确定了相应的 TEX 代码。由于每个子列表中的图像都是相同的,我已经(或仍然)确定了整个列表中每个图像 url 的 TEX 代码。

现在我想用已知的 TEX 代码替换每篇文章中的图片(比如这篇文章) 。这导致我不得不在这个子列表列表中索引每篇文章的图像 URL。

我的问题:您是否知道比上述任务的列表列表更好的数据结构?

示例代码:

在上面的示例中,dups是我的列表列表的简化版本(我使用数字而不是字符串。)如您所见,上述程序需要一些时间才能完成。我想改进 dups,以便可以更快地完成类似类型的索引。

备注 1:如果 dups 的长度为 n,则上述代码本质上会进行 1 + 2 + 3 + ... + n 次比较。这导致 n * (n+1)/2 次比较。由于在我的情况下 n = 100'000,这已经是很多比较了。

备注 2:一个明显的改进是将每个子列表转换为 Python 集合并考虑集合列表。但是,我的大多数子列表包含少于 3 张图像,所以我怀疑这会大大提高运行时间。

备注3:请注意,我几乎无法控制“传入”图像的顺序(基本上我必须遵循文章结构)并且我无法在列表列表中构建完整的顺序(因为我无法将子列表分开.) 因此,我还没有找到实现二进制搜索的方法。

0 投票
1 回答
72 浏览

python - 带有“__getitem__”的类没有“get”方法

我意识到一个没有方法的类自然get就没有get方法。将方法添加get到实现__getitem__[没有样板]的类的最佳方法是什么?

我试过了:

但蟒蛇抱怨:

显然collections.UserDict可以使用,但我希望是懒惰的(因为分辨率很昂贵)并且在项目数据被访问(并通过Foo对象上的键缓存)之前不填充项目数据。

想法?

0 投票
1 回答
113 浏览

python - dict_values 视图何时可以设置类似(以及为什么)?

文档说值视图不被视为 set-like,但有时它们是:

为什么要实现集合返回集合语义,但会因实际集合而失败?

0 投票
1 回答
6513 浏览

python-3.x - 所有 Python dunder 方法的列表 - 您需要实现哪些方法才能正确代理对象?

我正在尝试创建一个对象代理。属性/属性查找可以通过简单地实现__getattribute__,__setattr____delattr__方法来完成。但是,其他功能(例如,len(x), x[], bool(x)需要实现其他类似的 dunder 方法__len__, __getitem__, __bool__)。如果您没有在代理类上实现这些,但您代理的对象支持它们,您的代理将不完整并导致运行时错误。

因此,我想要一份我需要实施的所有事情的综合清单,但我在网上找不到任何可靠的清单。

这是我从typingandbuiltins模块中获得的 97 个独特的 dunder 方法名称。我知道他们中的很多人在做什么,但有些我不知道。为我的代理类实现全部或大部分它们会很痛苦,所以如果有解决方法我会很高兴。

0 投票
3 回答
473 浏览

python - 有什么方法可以判断函数对象是 lambda 还是 def?

考虑以下两个函数:

缺少对原始源代码的反省,有什么方法可以检测到它f1是一个 deff2还是一个 lambda?

0 投票
2 回答
4416 浏览

python - 从 python 字典中,如何将键和值保存到 *.txt 文件中

如何从字典中将键和值打印到 *.txt 文件?

我试图读取数据并将其打印到 *.txt 文件,但 name.txt 文件为空。

0 投票
1 回答
253 浏览

python-3.x - 当 Python __call__ 方法获得额外的第一个参数时?

以下示例

印刷

__call__ 方法参数的数量在 b.meth(3, 4) 示例中发生了更改。请解释第一个(__main__.B 对象...)以及 Python 何时提供它?

在 Debian 9.9 Stretch 上使用 Python 3.5.3

0 投票
1 回答
587 浏览

python - `__getattribute__` 和 `__getattr__` 中的错误处理

请注意,此问题已在评论中回答

我注意到一些异常处理行为__getattribute____getattr__我在文档或此处的其他帖子中找不到。

考虑这个类A。如果 的实例A具有属性 ,则None访问该属性会引发AttributeError.

现在,文档__getattribute__

无条件调用以实现类实例的属性访问。如果该类还定义了__getattr__(),则不会调用后者,除非__getattribute__()显式调用它或引发AttributeError.

由此,我猜想任何AttributeError加注__getattribute__都会被捕获,并且该过程会延迟到__getattr__,这样AttributeError('in __getattribute__')调用者就永远不会看到。

令我惊讶的是,不仅看到了错误,而且AttributeError引发的 onA().a也是 in 中的那个__getattribute__,就好像__getattr__从未被调用过一样。那是除非 __getattr__提出自己的

在这种情况下,我们看到AttributeError('in __getattr__')了提升。

这里有什么规则?如果不是AttributeError('in __getattribute__')我提出了in 的一些子类Oops,它们是否适用?AttributeError__getattribute__

0 投票
1 回答
75 浏览

python - 自定义删除器方法示例

我遇到过各种自定义getteror示例setter,但是使用自定义时的用例是deleter什么?到目前为止,我的一个例子是这样的: