相关内容: __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…
python之 __getattr__.__getattr__.__getitem__.__setitem__ 使用 __getattr__内置使用点号获取实例属性属性如 s.name,自调用__getattr__ __setattr__设置类实例属性 如s.name='tom',自调用__setattr__ __getitem__ 使用[]获取实例属性 如s['name'],自调用__getitem__ __setitem__ 使用[]设置实例属性如 s['name'] = 'tom' ,自调…
__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…
转载:http://blog.csdn.net/xhw88398569/article/details/48690163 __xxxitem__:使用 [''] 的方式操作属性时被调用 __setitem__:每当属性被赋值的时候都会调用该方法,因此不能再该方法内赋值 self.name = value 会死循环 __getitem__:当访问不存在的属性时会调用该方法 __delitem__:当删除属性时调用该方法 class A(object): def __init__(self): se…
本章内容: 创建类和对象 面向对象三大特性(封装.继承.多态) 类的成员(字段.方法.属性) 类成员的修饰符(公有.私有) 类的特殊成员 isinstance(obj, cls) & issubclass(sub, super) 异常处理 反射 单例模式 创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用. 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象则是根据模板创建的实…
一.反射 说反射之前先介绍一下__import__方法,这个和import导入模块的另一种方式 1. import commons 2. __import__('commons') 如果是多层导入: 1. from list.text import commons 2. __import__(' list.text.commons',fromlist=True) #如果不加上fromlist=True,只会导入list目录 反射即想到4个内置函数分别为:getattr.hasattr.setat…
一.面向对象的软件开发有如下几个阶段                                              1.面向对象分析(object oriented analysis ,OOA) 2 面向对象设计(object oriented design,OOD) 3 面向对象编程(object oriented programming,OOP) 4 面向对象测试(object oriented test,OOT) 5 面向对象维护(object oriendted soft m…
一.定制序列(容器类型) http://bbs.fishc.com/forum.php?mod=viewthread&tid=48793&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403:容器类型 协议(Protocols)与其他编程语言中的接口很相似,它规定你哪些方法必须要定义.然而,在Python中的协议就显得不那么正式.事实上,在Python中,协议更像是一种指南. 定制容器的协议 如果你希望定制的容器是不可变的话,你只需要定义__len…
本节大纲: 面向对象特性:封装.继承.多态.一:多态:python本身是多态,他的参数可以多种类型.可以是字符串.数字.列表等.当传入参数的时候,python可以判断参数的数据类型.而在java C#中不是.需要指定参数的类型.实现多态,需要指定类型为父类.参数类型可以是父类和子类的类型来实现多态特性.由于python本身的多态导致,由于类型的不确定,到时候在读源码的时候增加难度.这也算是python本身的一个缺点.二:类的成员字段:分普通字段(动态字段)和静态字段. class test: d…
python_way day8 一.面向对象三大特性: 多态 二.面向对象中的成员 字段.方法属性 三.成员修饰符 四.特殊成员 __init__.__doc__.__call__.__setitem__.__getitem__.___delitem__.__str__.__all__ 五.面向对象其他 --isinstance --issubclass   --继承2.7 --应用:1.自定义类型(做一个有序的字典) 2.源码的扩展 六.设计模式之单例模式 七.异常处理 一.多态  pytho…