__getattitem_ \__setattitem__\__delitem__】的更多相关文章

class Foo: def __getitem__(self, item): print('getitem',item) 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(…
# 对象作为len()函数的参数是必须实现该方法 __len__ # 使用类似字典方式访问成员时必须实现 dic['pro_name'] __getitem__ # 使用类似字典方式设置成员时必须实现 dic['pro_name']='asdf' __setitem__ # 使用类似字典方式删除成员时必须实现 delete dic['pro_name'] __delitem__ class DictDemo: def __init__(self,key,value): self.dict = {…
class Foo: def __init__(self,name): self.name=name def __getitem__(self, item): print(self.__dict__[item]) def __setitem__(self, key, value): self.__dict__[key]=value def __delitem__(self, key): print('del obj',key) def __delattr__(self, item): print…
h2 { color: #fff; background-color: #7CCD7C; padding: 3px; margin: 10px 0px } h3 { color: #fff; background-color: #008eb7; padding: 3px; margin: 10px 0px } python的魔法方法: 在Python中,如果我们想实现创建类似于序列和映射的类,可以通过重写魔法方法__getitem__.__setitem__.__delitem__.__len_…
可变集合需要实现: __len__  __getitem__    __setitem__  __delitem__不可变集合需要实现: __len__  __getitem__ __len__:返回集合长度 __getitem__(self, item) 使用索引访问元素 __setitem__(self, key, value) 对索引赋值,使用 self[key] = value . __delitem__(self, key) 删除索引值 del self[key]    __conta…
#__getitem__ __setitem__ __delitem__运行设置key value值了class fun: def __init__(self): print('test') def run(self): print('run') def __getitem__(self, item): print('__getitem__','item:',item) def __setitem__(self, key, value): print('__setitem__','key:',k…
相关内容: __del__.__doc__.__dict__.__module__.__getitem__.__setitem__.__delitem__.__str__.__repr__.__call__ 首发:posted @ 2018-02-07 01:08 修改: 2018-02-14 13:57:增加__repr__ __del__: 被称为析构函数 当删除一个对象时,python解释器会默认调用__del__()方法 import gc class Dog(object): def…
# 如果想要运用[]取值,可以实现__getitem__() # 想要运用[]设值,可以实现__setitem__() # 若想通过del与[]来删除,可以实现__delitem__() class ChainMap: def __init__(self,*maps): self.maps=maps def lookup(self,key): # 查找是否有对应键的字典 for m in self.maps: if key in m: return m return None def __get…
class Foo: def __init__(self,name): self.name=name def __getitem__(self, item): print(self.__dict__[item]) def __setitem__(self, key, value): self.__dict__[key]=value def __delitem__(self, key): print('del obj[key]时,我执行') self.__dict__.pop(key) def _…
特殊函数一般以__methodname__的形式命名,如:__init__(构造方法), __getitem__. __setitem__(subscriptable所需method), __delitem__(del obj[key]所需method), __len__(len(-)所需method)等: 以下以什么都不做的Something类,结合lambda表达式,来说明这些特殊函数: >>> class Something: ... pass ... >>> s…
转载:http://blog.csdn.net/xhw88398569/article/details/48690163 __xxxitem__:使用 [''] 的方式操作属性时被调用 __setitem__:每当属性被赋值的时候都会调用该方法,因此不能再该方法内赋值 self.name = value 会死循环 __getitem__:当访问不存在的属性时会调用该方法 __delitem__:当删除属性时调用该方法 class A(object): def __init__(self): se…
class Foo: def __init__(self, name): self.name = name def __getitem__(self, item): print('obj[key]时,我执行') print(self.__dict__[item]) def __setitem__(self, key, value): print('obj[key]=value时,我执行') self.__dict__[key] = value def __delitem__(self, key)…
目录 __setitem__ __getitem__ __delitem__与__delattr__ class Foo: def __init__(self, name): self.name = name def __getitem__(self, item): print('getitem执行', self.__dict__[item]) def __setitem__(self, key, value): print('setitem执行') self.__dict__[key] = v…
__getitem__.__setitem__.__delitem__ 总结: __getitem__,__setitem_,__delitem__ : obj[‘属性’]的方式去操作属性时触发的方法__getitem__:obj['属性'] 时触发__setitem__:obj['属性']=属性的值 时触发__delitem__:del obj['属性'] 时触发 赋值的底层原理都一样 f1.name = 'zhaok' #做的就是往属性字典里添加或覆盖值,原理:--->setattr----…
#item系列 和对象使用[]访问值有联系 #obj={'k':'v'} #print(obj) #print(obj['k']) class B: def __getitem__(self, item): #print('执行我了',item) #return 'bbb' return getattr(self,item) #getattr(object, name[,default]) #getattr() 函数用于返回一个对象属性值. #object -- 对象. #name -- 字符串…
item系列 class Person(object): def __init__(self, name): self.name = name def __getitem__(self, item): return self.__dict__[item] def __setitem__(self, key, value): self.__dict__[key] = value def __delitem__(self, key): del self.__dict__[key] obj = Per…
__setitem__和__getitem__和__delitem__ class Foo: def __init__(self, name): self.name = name def __getitem__(self, item): print('getitem执行', self.__dict__[item]) def __setitem__(self, key, value): print('setitem执行') self.__dict__[key] = value def __deli…
class Foo: def __getitem__(self, item): print('=====>get') return self.__dict__[item] def __setitem__(self, key, value): self.__dict__[key] = value # setattr(self,key,value) def __delitem__(self, key): self.__dict__.pop(key) f = Foo() f.x = 1 print(f…
主要讲类的内部方法 __setattr__  __getattr_  __delattr__  hasattr  __getattribute__  __getitem__(),__setitem__(), __delitem__() 主程序如下: class Foo: def _inif(self,pname): self.pname = pname def func(): print('i'm func') def __getattr__(self, item): print('提示:属性[…
基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object set(iterable) -> new set object Build an unordered collection of unique elements. """ def add(self, *args, **kwargs): # real signature un…
一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值范围为-2**63-2**63-1,即-9223372036854775808-9223372036854775807 class int(object): """ int(x=0) -> int or long int(x, base=10) -> int or l…
很多pythonic的代码都会用到内置方法,根据自己的经验,罗列一下自己知道的内置方法. __getitem__ __setitem__ __delitem__ 这三个方法是字典类的内置方法,分别对应于查找.设置.删除操作,以一个简单的例子说明: class A(dict): def __getitem__(self, key): print '__getitem__' return super(A, self).__getitem__(key) def __setitem__(self, ke…
一.Django 简介 Django 是一个由 Python 写成的开放源代码的 Web 应用框架.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是 CMS(内容管理系统)软件.并于2005年7月在 BSD 许可证下发布.这套框架是以比利时的吉普赛爵士吉他手 Django Reinhardt 来命名的.由于 Django 的是在一个快节奏的新闻编辑室环境下开发的,它的目的是使常见的 Web 开发任务,快速和容易. MTV 模式 Django 采用了 MTV 设计模式…
内容概要: 一.python2 or python3 目前大多使用python2.7,随着时间的推移,python3将会成为python爱好者的主流. python2和3区别: 1.PRINT IS A FUNCTION Old: print "The answer is", 2*2 New: print("The answer is", 2*2) Old: print x, # Trailing comma suppresses newline New: prin…
本章内容: 创建类和对象 面向对象三大特性(封装.继承.多态) 类的成员(字段.方法.属性) 类成员的修饰符(公有.私有) 类的特殊成员 isinstance(obj, cls) & issubclass(sub, super) 异常处理 反射 单例模式 创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用. 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象则是根据模板创建的实…
本章内容: 模块介绍 time & datetime random os sys json & picle hashlib XML requests ConfigParser logging shutil subprocess argparse 模块介绍 Python Module(模块),就是一个保存了Python代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. 文件名就是模块名加上后缀.py,在模块内部,模块名存储在全局变量__name__中,是一个string,可以…
本章内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典.set集合) for 循环 enumrate range和xrange 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在6…
数字 Int,整型 Float,浮点型 Long,长整型 布尔 字符串 列表 元组 字典 1.数字 INT(整型) 在32位系统上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648 ~ 2147483647. 在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808 ~ 9223372036854775807. LONG(长整型) Python的长整型没有指定位宽,即:Python没有限制长整型数值…
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值范围为-2**63-2**63-1,即-9223372036854775808-9223372036854775807 long(长整型) 跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长…
/int整数/ 如: 18.73.84 每一个整数都具备如下功能: class int(object): """ int(x=0) -> int or long int(x, base=10) -> int or long Convert a number or string to an integer, or return 0 if no arguments are given. If x is floating point, the conversion tr…