python面向对象--item方法
class Foo:
def __getitem__(self, item):
print("getitem")
return self.__dict__[item] def __setitem__(self, key, value):
print("setitem")
self.__dict__[key]=value def __delitem__(self, key):
print("delitem")
self.__dict__.pop(key) f1=Foo()
print(f1.__dict__)
# f1.name="egon"
f1['name']="egon"
f1["age"]="" print(f1.__dict__) del f1["name"]
print(f1.__dict__) f1['age']
print(f1['age']) #点的方式操作的属性与getattr相关,中括号操作的属性与item相关
#item方法注意是通过下标来访问字典,getattr通过.号访问实例属性,__getitem__方法只有当self的属性存在时通过下标访问时才会触发,__getattr__当访问self的属性不存在时候触发
python面向对象--item方法的更多相关文章
- Python 面向对象 特殊方法(魔法方法)
Python 的特殊方法,两边带双下划线的方法. 比如:__init__(self, ...).__del__(self) 1.__init__(self,...) : 构造方法 __init__(s ...
- python面向对象魔术方法补充
一.描述符 在 面向对象 编程中 定义一个(没有定义方法)类:class person , 在这个类里面,有name,age, heigth, weight,等等属性, 这个类就可以看作一个对 per ...
- Python面向对象之方法
普通方法要执行类里面的方法是通过对象触发的 触发的时候把自己赋值给self 类方法 vim day7-7.py #!/usr/bin/python # -*- coding:utf-8 -*- cla ...
- python 面向对象 析构方法
实例化但从来没有调用他,就浪费了,就应该自动删除它 这个实例一直存在内存里 python有个垃圾自动回收机制 , 每段时间会自动刷新整个内存,把内存垃圾东西删除 析构函数: 在实例释放.销毁的时候 ...
- python面向对象-1方法、构造函数
类是指:描述一种事物的定义,是个抽象的概念 实例指:该种事物的一个具体的个体,是具体的东西 打个比方: “人”是一个类.“张三”是人类的一个具体例子 在编程时也是同样的道理,你先自己定义一个“类”,当 ...
- [Python]python面向对象 __new__方法及单例设计
__new__ 方法 使用 类名() 创建对象时,Python 的解释器 首先 会 调用 __new__ 方法为对象 分配空间 __new__ 是一个 由 object 基类提供的 内置的静态方法,主 ...
- Python面向对象-定制方法
Python中的class可以定义许多定制方法,可以让我们方便的生成特定的类. 我们之前介绍了__slots__.__len__(),python中还有许多这样的特殊函数: __str__ >& ...
- Python面向对象 | 鸭子方法
鸭子类型 如果看起来像.叫声像而且走起路来像鸭子,那么它就是鸭子’.python程序员通常根据这种行为来编写程序.例如,如果想编写现有对象的自定义版本,可以继承该对象,也可以创建一个外观和行为像,但与 ...
- python之item方法
__setitem__ __getitem__ __delitem__这三个函数 是通过字典形式来处理属性 字典形式使用中括号的方式获取值 class Foo: def __init__(sel ...
随机推荐
- Han Xin and His Troops
Han Xin and His Troops 中国剩余定理 JAVA板子 /*中国剩余定理,根据公式需要求取大数的逆元*/ import java.math.BigInteger; import ja ...
- 一台电脑多个git使用 push 时候出现denied
http://my.oschina.net/silentboy/blog/220158 当一台电脑上多个git account 的时候, 出现如下问题, $ git push origin maste ...
- 2014 ECML: Covariate-correlated lasso for feature selection (ccLasso)
今天看了一篇 ECML 14 的文章(如题),记录一下. 原文链接:http://link.springer.com/chapter/10.1007/978-3-662-44848-9_38 这篇文章 ...
- 深入探讨 Python 的 import 机制:实现远程导入模块
深入探讨 Python 的 import 机制:实现远程导入模块 所谓的模块导入( import ),是指在一个模块中使用另一个模块的代码的操作,它有利于代码的复用. 在 Python 中使用 ...
- CSS - 层叠上下文(The stacking context)
对 MDN 的上的例子的拓展 Root - DIV #1(z-index: 5) - DIV #2(z-index: 2) - DIV #3(z-index: 4) - DIV #4(z-index: ...
- python 卡方检验例子
python 求拒绝域和卡方值 import scipy.stats as ss obs=[107,198,192,125,132,248] exp=[167]*6 #拒绝域 1%的显著水平,自由度5 ...
- spring监听机制——观察者模式的应用
使用方法 spring监听模式需要三个组件: 1. 事件,需要继承ApplicationEvent,即观察者模式中的"主题",可以看做一个普通的bean类,用于保存在事件监听器的业 ...
- unique()与nunique()
1 unique() 统计list中的不同值时,返回的是array.它有三个参数,可分别统计不同的量,返回的都是array. 当list中的元素也是list时,尽量不要用这种方法. import nu ...
- idea创建maven中的 jar、war、 pom项目
我用的是:2019.1版本的idea 创建maven项目时候的选项: 1: 2: 3:之后的步骤都一样按照自己的来就行
- Matlab入门基础
matlab入门篇,一些基础用法记一下~ M语言是解释型语言 who:查看当前变量 whoes:查看当前变量及其维数.所占字节数等. clear: 清除所有变量 clear + 变量名 ...