Python 的 setitem、getitem、delitem 特殊方法使用
简介
setitem:当属性被以索引方式赋值的时候会调用该方法
getitem:一般如果想使用索引访问元素时,就可以在类中定义这个方法
delitem:当使用索引删除属性时调用该方法
实例
__Author__ = "Lance#"
# -*- coding = utf-8 -*-
class Point:
def __init__(self):
pass
def __str__(self):
return 'Point is (%s,%s)' %(self.x, self.y)
def __setitem__(self, key, value):
print('Called the __setitem__ function')
self.__dict__[key] = value
def __getitem__(self, item):
print('Called the __getitem__ function')
try:
if item == 'x':
return '%s' %self.x
elif item == 'y':
return '%s' %self.y
except:
return 'There is no this item in class Point'
def __delitem__(self, key):
del self.__dict__[key]
if __name__ == '__main__':
p = Point()
p['x'] = 3
print(p['x'])
p['y'] = 6
print(p)
del p['x']
print(p['x'])
运行结果
Called the __setitem__ function
Called the __getitem__ function
3
Called the __setitem__ function
Point is (3,6)
Called the __getitem__ function
There is no this item in class Point
Process finished with exit code 0
在上一篇文章中,以 MIMEText 对象构造的 msg 就赋有该属性,使之具有 msg['From'] = xxx 的功能。
Python 的 setitem、getitem、delitem 特殊方法使用的更多相关文章
- python - setitem/getitem/delitem类的内置方法
# class 内置方法: # __setitem__ # __getitem__ # __delitem__ class Test(): X = 100 def __getitem__(self, ...
- Python下载网页的几种方法
get和post方式总结 get方式:以URL字串本身传递数据参数,在服务器端可以从'QUERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数据(只能是字符串,比如在 ...
- 使用Python解析JSON数据的基本方法
这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下: ----------------------------------- ...
- python操作日期和时间的方法
不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法.1.将字符串的时间转换为时间戳 ...
- appium+Python真机运行测试demo的方法
appium+Python真机运行测试demo的方法 一, 打开手机的USB调试模式 二, 连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...
- Python中optionParser模块的使用方法[转]
本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...
- 转: CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法
from: http://www.linuxde.net/2014/05/15576.html CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法 2014/05/ ...
- python字符串连接的三种方法及其效率、适用场景详解
python字符串连接的方法,一般有以下三种:方法1:直接通过加号(+)操作符连接website=& 39;python& 39;+& 39;tab& 39;+& ...
- Python字符串连接的5种方法
总结了一下Python字符串连接的5种方法: 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 "+" 来连接两个字符串: ...
- Python调用C/C++的种种方法
Python调用C/C++的种种方法 2010-12-07 09:59 28433人阅读 评论(1) 收藏 Python是解释性语言, 底层就是用c实现的, 所以用python调用C是很容易的, 下面 ...
随机推荐
- C#HTTP请求之POST请求和GET请求
POST请求 /// <summary> /// POST请求获取信息 /// </summary> /// <param name="url"> ...
- Numpy1
列表转n维数组ndarray import numpy as np list=[1,2,3,4] n=np.array(list) random模块生成ndarray n1=np.random.ran ...
- python学习第四天笔记整理
一.迭代器及生成器 #迭代器:迭代的工具 #1 什么是迭代:指的是一个重复的过程,每一次重复称为一次迭代,并且每一次重复的结果是下一次重复的初始值# while True:# print('===== ...
- vue的指令
我之前学了学angular 发现angular和vue的指令有点类似 先说一下 new Vue({ el: "#box", // element(元素) 当前作 ...
- 【java源码】解读HashTable类背后的实现细节
HashTable这个类实现了哈希表从key映射到value的数据结构形式.任何非null的对象都可以作为key或者value. 要在hashtable中存储和检索对象,作为key的对象必须实现has ...
- Java中不定项参数(可变参数)的作用和使用方式
引言: 我们在编写方法的过程中,可能会遇见一个方法有不确定参数个数的情况.一般我们会用方法重载来解决问题: //方法重载,解决参数个数不确定问题 public void method(); publi ...
- Python之旅Day6 模块应用
time datetime random os sys shutil pickle json shelv xml configparser hashlib subprocess logging re ...
- day_5字符串和列表的各种操作方法
字符串类型: 字符串的定义是可以有多种引号嵌套 定义字符串是以开头的引号然后匹配和第一个引号相同的引号,所以当字符串中间出现和第一个引号相同的引号就会出错,这个时候就可以选择别的引号进行创建字符串,或 ...
- 使用MXNet的NDArray来处理数据
NDArray.ipynb NDArray介绍 机器学习处理的对象是数据,数据一般是由外部传感器(sensors)采集,经过数字化后存储在计算机中,可能是文本.声音,图片.视频等不同形式. 这些数字化 ...
- Python爬虫1-使用urlopen
GitHub代码练习地址:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac01_urlopen.py 爬虫简介- 爬虫定义 ...