[2015-08-09] python020
2015-08-10 22:25
531 查看
类
[code]__varname__() :会被Python解释器自动调用 a + b 相当于 a.__add__(b) l1 = [1,2,3] 相当于 l1 = list([1,2,3]) 创建实例时,Python会自动调用类中的__init__方法,以隐性的为实例提供属性 __init__方法被称为构造器 如果类中没有定义__init__方法,实例创建之初仅是一个简单的名称空间 __del__方法叫做析构器
类的特殊属性:
[code]可以使用类的__dict__字典属性或Python内置的dir()函数来获取类的属性 A.__name__ :类A的名字 A.__doc__ :类A的文档字符串 A.__bases__ :类A的所有父类构成的元组 A.__dict__ :类A的属性 A.__module__:类A定义所在的模块 A.__class__ :实例A对应的类
实例属性:
[code]实例仅拥有数据属性(严格意义上来说,方法是类属性) 通常通过构造器"__init__"为实例提供属性 这些数据属性独立于其它实例或类 实例释放时,其属性也将被清除 内建函数dir()或实例的特殊属性__dict__可用于查看实例属性 I.__class__ :实例化I的类 I.__dict__ :I的属性
Python类方法中可用的变量:
[code]方法的可用变量 实例变量:指定变量名称及实例自身进行引用 self.变量名 局部变量:方法内部创建的变量,可直接使用 类变量(也称静态变量):通过指定变量名与类名进行引用 类名.变量名 全局变量:直接使用
继承
继承描述了基类的属性如何“遗传”给派生类子类可以继承它的基类的任何属性,包括数据属性和方法
一个未指定基类的类,其默认有一个名为object的基类
Python允许多重继承
创建子类:
[code]创建子类时,只需要在类名后跟一个或从其中派生的父类 class SubClassName(ParentClass1[,ParentClass2,...]) 'optional class documentatioon string' class_suite 子类可以继承它的基类的任何属性,包括数据属性和方法
Python类的继承和属性搜索:
[code]Python中几乎所有属性的获取都可以使用“object.attribute”的格式 不过,此表达式会在Python中启动搜索---搜索连续的树 class语句会产生一个类对象,对class的调用会创建实例,实例自动连结至创建了这些实例的一个或多个类 类连结至其超类的方式: 将超类列在类头部的括号内,其从左至右的顺序会决定树中的次序 由下至上,由左至右
继承方法专用化:
继承会先在子类寻找变量名,然后才查找超类,因此,子类可以对超类的属性重新定义来取代继承而来的行为子类可以完全取代从超类继承而来的属性
也可以通过已覆盖的方法回调超类来扩展超类的方法
类、实例和其他对象的内建函数:
[code]issubclass() 布尔函数,判断一个类是否由另一个类派生,语法: issubclass(sub,sup) isinstance() 布尔函数,判断一个对象是否是给定类的实例,语法: isinstance(obj1,class_obj2) hasattr() 布尔函数,判断一个对象是否拥有指定的属性,语法: hasattr(obj,'attr') 同类的函数还有getattr(),setattr(),delattr() super() 在子类中找出其父类以便于调用其属性 一般情况下仅能采用非绑定方式调用祖先类方法 而super()可用于传入实例或类型对象,语法: super(type[,obj])
相关文章推荐
- python numpy sum函数用法
- python numpy argsort函数用法
- python __name__用法
- Apriori算法
- 升级MAC OX上的Python到3.4
- 自动化运维工具Ansible之Python API
- machine learning in coding(python):拼接原始数据;生成高次特征
- Python(x,y)科学计算包的安装
- python安装psycopg2
- python基础教程学习笔记 — 准备Windows下开发环境
- python:5、函数2
- Python中的布尔类型
- 实习小记-python中不可哈希对象设置为可哈希对象
- [Python基础]010.os模块(2)
- python:5、函数1
- 《机器学习系统设计》之k-近邻分类算法
- python tile函数用法
- python发送各类邮件的主要方法 smpt
- python连接ftp上传下载
- Python多线程爬取知乎获赞过千的答案链接