类的内置方法setattr和setitem

'''
__setitem__与__setarrt__
个人理解:item是与切片和索引有关的
'''
class Person:def __init__(self):self.cache = {}def __setitem__(self, key, value): #使p['name']='sz'是可行的   使p.name='sz'也是可行的self.cache[key] = valuedef __getitem__(self, item):return self.cache[item]def __delitem__(self, key):del self.cache[key]def __setattr__(self, key, value): #使p.name='sz'是可行的 但是p['name']='sz'是不可行的self.key=value
p=Person()
p['name']='za'
print(p['name'])

对于setitem来说:

class Person:def __init__(self):self.cache = {}def __setitem__(self, key, value): #使p['name']='sz'是可行的   使p.name='sz'也是可行的self.cache[key] = valuedef __getitem__(self, item):return self.cache[item]def __delitem__(self, key):del self.cache[key]
p=Person()
p['name']='za' #如果是setattr就会报错
print(p['name'])
del p['name']

setitem主要与切片和索引相关:

#切片:
class Person:def __init__(self):self.items = [1,2,3,4,5,6,7,8]def __setitem__(self, key, value):if isinstance(key,slice):self.items[key]=value#或者self.items[key.start:key.stop:key.step]=valuedef __getitem__(self, item):print(item)def __delitem__(self, key):print(key)
p=Person()
p[0:4:2] = ['a','b']
print(p.items)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识Java 18-4 泛型

目录 泛型存在的问题 在泛型中使用基本类型 实现参数化接口 类型转换和警告 无法实现的重载 基类会劫持接口 自限定类型 奇异递归类型 自限定 自限定提供的参数协变性 本笔记参考自: 《On Java 中文版》 泛型存在的问题 接下来讨论的,是在泛型…

C语言——字符函数和字符串函数(上)

在编程的过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语⾔标准库中提供了⼀系列库函数,接下来我们就学习⼀下这些函数。 一、 字符分类函数 C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字…

Java——》线性数据结构

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

开放式耳机性价比排行榜、开放式耳机性价比排行榜前十

目前市面上的蓝牙耳机品类繁多,开放式蓝牙耳机是这几年比较新兴的,因为不入耳、佩戴舒适、安全系数高等优点,一直备受运动人士追捧,还有像我们这样日常用但是耳道比较小或者戴入耳式觉得头晕恶心的人,开放式耳机真的是…

力扣二叉树--第三十四天

前言 今天是构建二叉树和处理两个二叉树的问题。重点:单调栈的思想,后续模块会专门刷题。 内容 一、最大二叉树 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其…

神经网络核心组件和流程梳理

文章目录 神经网络核心组件和流程梳理组件流程 神经网络核心组件和流程梳理 组件 层:神经网络的基本结构,将输入张量转换为输出张量。模型:由层构成的网络。损失函数:参数学习的目标函数,通过最小化损失函数来学习各…

Git_git相关指令 高阶

git config pull.rebase false git config pull.rebase false是做什么的_fury_123的博客-CSDN博客

postgreSQL 查询所有模式的语句

场景 postgre 数据库下携带模式的分组 sql select schema_name from information_schema.schemata;

linux简述进程

进程 计算机四大存储资源:磁盘资源、内存资源、cpu资源、网络资源 一个正在运行的程序,一个程序运行至少要启动一个进程,主进程 子进程 速度:启动慢,结束慢 资源隔离 资源不共享一个进程正常运行,至少要…

POJ P1088动规的三种解法

Language:Default 滑雪 Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 123098Accepted: 47211 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底&#x…

Junos webauth_operation.php 文件上传漏洞复现(CVE-2023-36844)

0x01 产品简介 Junos 是 Juniper Networks 生产的一款可靠的高性能网络操作系统。 0x02 漏洞概述 Junos webauth_operation.php接口处存在文件上传漏洞,未经身份认证的攻击者可利用 Junos 操作系统的 J-Web 服务 /webauth_operation.php 路由上传 php webshell&…

MySQL系列 - 数据类型

MySQL是一种常用的关系型数据库管理系统,它支持多种数据类型,包括整数、浮点数、字符串、日期和时间等。在本文中,我们将介绍MySQL中常用的数据类型及其用法。 MySQL数据类型介绍: 1、整数类型: MySQL提供了多种整数…

聚观早报 |魅族21搭载超声波指纹2.0;华为长安成立新公司

【聚观365】11月28日消息 魅族21搭载超声波指纹2.0 华为长安成立新公司 OPPO Reno11 Pro本周首销 淘宝天猫推出系列AI工具 长城汽车计划全面进入欧洲市场 魅族21搭载超声波指纹2.0 魅族官方此前已宣布,将于11月30日召开“2023魅族秋季无界生态发布会”&#x…

【用unity实现100个游戏之17】从零开始制作一个类幸存者肉鸽(Roguelike)游戏3(附项目源码)

文章目录 本节最终效果前言近战武器控制近战武器生成升级增加武器伤害和数量查找离主角最近的敌人子弹预制体生成子弹发射子弹参考源码完结 本节最终效果 前言 本节紧跟着上一篇,主要实现武器功能。 近战武器 新增Bullet,子弹脚本 public class Bull…

Shell编程基础 – for循环

Shell编程基础 – for循环 Shell Scripting Essentials - for Loop 大多数编程语言都有循环的概念和语句。如果想重复一个任务数十次,无论是输入数十次,还是输出数十次,对用户来说都不现实。 因此,我们考虑如何用好Bash Shell编…

单片机BootLoader是咋回事?

BootLoader的定义: CPU进入APP之前运行的一小段程序代码就叫做BootLoader。它是由程序员编写的,作用是更新应用程序。这也就说明了只有BootLoader的单片机才可以升级。有的产品有升级的需要就需要BootLoader了。 单片机的启动过程可以这么叙述&#xff…

【C++】set/multiset/map/multimap

目录 一、关联式容器 1.1 树形结构的关联式容器 二、set 2.1 set的介绍 2.2 set的使用 2.2.1 set的构造 2.2.2 set的迭代器 2.2.3 set的容量函数 2.2.4 set的功能函数 2.2.5 set的使用举例 三、multiset 3.1 multiset的介绍 3.2 multiset的使用演示 四、map 4.1…

Linux内核--内存管理(三)物理内存分页机制--kmalloc及slub机制

一、引言 二、slub机制 ------>2.1、slub分配原理slub原理 ------>2.2、slub分配原理 ------>2.3、slub释放原理 ------>2.4、SLUB分配器 三、slub数据结构 ------>3.1、kmem_cache ------>3.2、kmem_cache_cpu ------>3.3、kmem_cache_node --…

线性表之队列

文章目录 主要内容一.队列1.队列的顺序存储代码如下(示例): 2.队列的链式存储3.双端队列 总结 主要内容 队列 一.队列 队列是一种先进先出(FIFO,First In First Out)的线性数据结构,它具有两个基本操作&a…

什么是路由抖动?该如何控制

路由器在实现不间断的网络通信和连接方面发挥着重要作用,具有所需功能的持续可用的路由器可确保其相关子网的良好性能,由于网络严重依赖路由器的性能,因此确保您的路由器不会遇到任何问题非常重要。路由器遇到的一个严重的网络问题是路由抖动…