如何在python中实现一个自定义的列表或字典

author author     2023-04-23     781

关键词:

参考技术A

在很多的python库之中,我们可以看到有的时候,库作者会使用一些很特殊的“列表”或者“字典”。虽然他们看起来很像是一个列表或者字典,但是使用的方法却又不一样,这是因为那不是真的python中原本的列表和字典,而是作者自己创建的。那么,我们如何可以创建我们自己的列表和字典呢?

前后都使用两个下划线的方法,一般被称之为魔法方法,比如我们常见的 init ,就是一种魔法方法。一般来说,我们自行定义变量名的时候,不要定义很像是魔法方法的变量名。魔法方法被定义后,可以在适当的时候自动被调用,一般不需要手动对其进行调用。

在python中,实现一个序列,我们需要以下四种魔法方法

另外,一般来说,错误的键应当引发TypeError异常,而错误的索引应当引发IndexError异常

在python的列表中,只能够使用数字作为索引,如果使用字符串的数字的话,那么会引发异常。因此,我们可以尝试一下,对原始的列表进行扩充,使其可以接受字符串作为列表的索引。

注意,这样的自建列表,存在很多问题,几乎全部的关于列表的方法都不能再被使用了。

为了解决正常列表的方法不能再被使用,我们可以考虑直接继承list,以此得到普通列表的所有方法。

如何在 Python 中实现向量自回归?

】如何在Python中实现向量自回归?【英文标题】:HowtoimplementVectorAuto-RegressioninPython?【发布时间】:2013-08-2307:28:00【问题描述】:我想在python中实现向量自回归。我的数据保存为3个列表的列表。我找到了这个-http://statsmodels.sourcef... 查看详情

如何在自定义 delphi 组件中实现 stringlist 属性?

】如何在自定义delphi组件中实现stringlist属性?【英文标题】:Howtoimplimentastringlistpropertyinacustomdelphicomponent?【发布时间】:2011-05-0207:46:11【问题描述】:我正在创建我的第一个自定义Delphi组件。它基本上是一个自定义的Tpanel,上... 查看详情

如何在Angular 8中实现@提及自定义下拉菜单

】如何在Angular8中实现@提及自定义下拉菜单【英文标题】:Howtoimplement@mentionscustomdropdowninAngular8【发布时间】:2021-12-2809:48:09【问题描述】:我想在Angular8中实现大多数社交媒体网络中的以下功能。这是场景:当用户在<textar... 查看详情

如何在自定义相机中实现“捏放大”

】如何在自定义相机中实现“捏放大”【英文标题】:Howtoimplement"pinchtozoom"incustomcamera【发布时间】:2016-02-0620:42:00【问题描述】:我有一个自定义的照片/摄像机(想想Snapchat),它带有一个捏识别器来放大/缩小。根据... 查看详情

如何在 iPhone 中实现自定义相机功能? [关闭]

】如何在iPhone中实现自定义相机功能?[关闭]【英文标题】:HowtoimplementcustomcamerafunctionalityiniPhone?[closed]【发布时间】:2011-08-1605:07:13【问题描述】:我想开发一种功能,以便在iPhone应用程序中实现自定义相机功能,所以请给我... 查看详情

如何在canvas中实现自定义路径动画(代码片段)

...塞尔曲线,因此,这个动画也许是下面这个样子的:那么如何才能在canvas中实现这种动画效果呢?其实很简单,对于路径的处理svg非常在行,因此在canvas中实现自定义路径动画,我们需要借助svg的力量。创建Path制作动画前,先... 查看详情

在python的自定义类中实现'with object() as f'的使用

】在python的自定义类中实现\\\'withobject()asf\\\'的使用【英文标题】:Implementinguseof\'withobject()asf\'incustomclassinpython在python的自定义类中实现\'withobject()asf\'的使用【发布时间】:2011-04-1600:24:41【问题描述】:我必须在python中打开一个... 查看详情

如何在黄瓜中实现自定义监听器?

】如何在黄瓜中实现自定义监听器?【英文标题】:Howtoimplementcustomlistenersincucumber?【发布时间】:2021-12-2214:55:47【问题描述】:如何在cucumber中实现客户监听?哪个可以记录到控制台/报告失败方法的发生?使用黄瓜4.0注意:钩... 查看详情

如何在 keras 中实现自定义指标?

】如何在keras中实现自定义指标?【英文标题】:howtoimplementcustommetricinkeras?【发布时间】:2016-10-0601:13:54【问题描述】:我得到这个错误:sum()得到了一个意外的关键字参数\'out\'当我运行这段代码时:importpandasaspd,numpyasnpimportkera... 查看详情

如何在自定义 UIButton 中实现 .isHighlighted 动画?

】如何在自定义UIButton中实现.isHighlighted动画?【英文标题】:Howtoachieve.isHighlightedanimationinaCustomUIButton?【发布时间】:2018-10-0405:26:49【问题描述】:序言(实际问题代码后向下翻页):我有一个自定义的UIButton类,在其中我用这... 查看详情

如何在 Wordpress 中实现我的自定义登录页面?

】如何在Wordpress中实现我的自定义登录页面?【英文标题】:HowcanIimplementmycustomlandingpageintoWordpress?【发布时间】:2021-06-2018:52:59【问题描述】:我目前正在从事一个在Docker上的Node.js上运行的项目。为此,我使用Bootstrap构建了一... 查看详情

如何在 Keras 中实现具有动态形状的自定义输出层?

】如何在Keras中实现具有动态形状的自定义输出层?【英文标题】:HowtoimplementcustomoutputlayerwithdynamicshapeinKeras?【发布时间】:2020-11-0607:43:05【问题描述】:我想用Tensorflow2.0后端在Keras中实现YOLO-tiny。我想制作一个新的自定义YoloLa... 查看详情

如何在 excel 中实现这种自定义数字格式?

】如何在excel中实现这种自定义数字格式?【英文标题】:HowmightIachievethiscustonnumberformattinginexcel?【发布时间】:2020-05-0618:06:28【问题描述】:为了这个例子:100copper=1silver100silver=1gold100gold=1platinum我有一个代表铜数量的数字,我... 查看详情

如何在 TCPDF 中实现自定义字体

】如何在TCPDF中实现自定义字体【英文标题】:HowtoimplementcustomfontsinTCPDF【发布时间】:2011-07-1222:11:47【问题描述】:在TCPDF中,只有几种字体可供选择,用于创建pdf文件。我想将Tahoma设置为我的pdf字体。如何在TCPDF中包含Tahoma?... 查看详情

在 kvm 中实现自定义超级调用

...拟化非常陌生,最近我一直在尝试熟悉VMM的操作方式以及如何进行超级调用。谈到我打算在安装在我的Ubuntu桌面上的KVM中实现一个新的超级调用,然后可以从来宾环境中调用。通过这个超级调用,我打算只返回一个字符串“HelloW... 查看详情

尝试使用自定义适配器在自定义 todolist 中实现 CheckBox 时遇到问题?

】尝试使用自定义适配器在自定义todolist中实现CheckBox时遇到问题?【英文标题】:HavingproblemswhiletryingtoimplementaCheckBoxinacustomtodolistusingacustomadapter?【发布时间】:2015-08-1608:06:48【问题描述】:我正在通过可编辑文本向列表视图添... 查看详情

python在python中实现异常的自定义属性(代码片段)

查看详情

如何在 iOS 中显示自定义嵌套列表

】如何在iOS中显示自定义嵌套列表【英文标题】:HowtoshowcustomnestedlistsiniOS【发布时间】:2017-09-1308:11:36【问题描述】:我想在iOS中显示一个列表,它本身将包含一个列表。例如,我想创建一个每日任务列表,其中日期和任务是... 查看详情