- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先让我说我明白为什么要子类化 list
无法按您的预期工作(因为 list
是原始内置类型,并且存在性能问题等)。 AFAIK collections.UserList 应该避免所有这些问题,并使子类化 UserList 完全按照您的预期工作。例如,
class DumbList(list):
pass
d1 = DumbList([1,2,3])
d2 = DumbList([4,5])
type(d1 + d2)
返回<class 'list'>
,但是
from collections import UserList
class DumbList(UserList):
pass
d1 = DumbList([1,2,3])
d2 = DumbList([4,5])
type(d1 + d2)
返回<class '__main__.DumbList'>
正如预期的那样。但是,即使使用 UserList
,切片似乎也会返回错误的类型。而不是list
:
class DumbList(UserList):
pass
d = DumbList([1,2,3])
type(d[:2])
返回<class 'list'>
,不是<class '__main__.DumbList'>
正如预期的那样。
两个问题:
class DumbList(UserList):
def __getitem__(self, item):
result = UserList.__getitem__(self, item)
try:
return self.__class__(result)
except TypeError:
return result
...但似乎这种样板代码应该是不必要的。
最佳答案
在 Python 2 中,普通切片(没有跨步)将由 __getslice__
method 处理。 。 UserList
实现早于将扩展切片(带跨度)添加到语言中,并且从未添加对它们的支持,请参阅 issue 491398 .
Python 3 实现只是采用了 Python 2 版本,移至 collections
中,并删除了 __getslice__
和 __setslice__
,因为它们不再受支持Python 3。
因此,__getitem__
实现仍然很简单:
def __getitem__(self, i): return self.data[i]
假设切片将在其他地方处理。
在 Python 3 中,所有切片都是通过传入 slice()
built-in type 来处理的。到__getitem__
;只需测试该类型并将结果包装在 type(self)
调用中:
def __getitem__(self, i):
res = self.data[i]
return type(self)(res) if isinstance(i, slice) else res
关于python - 为什么 UserList 子类似乎返回错误的切片类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27552379/
我正在为我的 swing 应用程序编写基本的用户注册和登录。目前,该列表有 3 个硬编码的用户,单击登录按钮时可以成功进行身份验证。 我遇到的问题是当我去注册新用户时。我已经调试过,在将新用户从注册
首先让我说我明白为什么要子类化 list无法按您的预期工作(因为 list 是原始内置类型,并且存在性能问题等)。 AFAIK collections.UserList 应该避免所有这些问题,并使子类
我正在 UserList 中创建一个新类,并尝试重写 add、append 和extend 方法,以便任何这些操作都不会将重复值添加到列表中。到目前为止,我已经开始尝试重写追加方法,当我尝试在对象上实
这个问题在这里已经有了答案: How to pickle and unpickle instances of a class that inherits from defaultdict? (2 个
我有这个: @FXML private ChoiceBox choiseData; ObservableList choiseUserList = FXCollections.observableAr
我有一个用于大学项目的网络应用程序(使用 Hibernate,我无法避免它,因为这是考试的重点之一),我需要一个登录功能。 在我使用 Jmeter 运行一些测试(基本上是登录中的 http get e
当我运行下面的代码时出现以下错误 您的 SQL 语法有误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“用户列表”ORDER BY“用户名”附近使用的正确语法 $query = "
当我尝试从我的 Mongodb 中提取我的用户集合时,出现了上述错误。相关代码如下,任何关于为什么会发生这种情况的帮助将不胜感激。 错误 C:\nodetest1\views\userlist.jad
今天编码,首选和推荐(在 Python 2 和 3 中)以上哪项用于子类化? 我读到引入了UserList和UserDict,因为以前list和dict不能被子类化,但既然这不再是问题,是否鼓励使用它
views.py: from .models import Classname from .serializers import ClassSerializer, UserSerializer fro
我有一个 create-react-app 应用程序工作 100% ,我想集成 webpack4 来部署我的应用程序,但是在配置 webpack 后,当我“npm dev run”时,我在每个惰性导入
我正在尝试用一些自定义方法扩展 pythons 的 list,为此我我正在创建一个继承自 UserList 的类。 我不确定什么是正确的方法,我想让 mypy 玩与 UserList 配合得很好。 我
我是一名优秀的程序员,十分优秀!