特性
class
object
封装
继承
多态
语法
调用函数 --》 执行 --》返回结果
r1 = Role.__init__() return x342423
r1 = Role(r1,"A","Police","15000")
r1.name = "A"
r1.role = "Poice"
r1.money = 15000
r1.buy_gun() Role.buy_gun(r1)
属性
方法
类变量的用途? 大家共用的属性 ,节省开销
class Person:
cn = "中国"
def __init__(self,name,age,addr,cn="china")
self.name = name
self.cn = cn
p1 = Person(name,age ,addr)
构造函数
析构函数: 在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作, 如关闭一些数据库连接,关闭打开的临时文件
私有方法,私有属性
类变量
实例变量
封装
继承
py2 经典类是按深度优先来继承的,新式类是按广度优先来继承的
py3 经典类和新式类都是统一按广度优先来继承的
多态
一种接口,多种实现
类
属性
实例变量
类变量
私有属性__var
方法
构造方法,
析构函数
私有方法
对象:实例化一个类之后得到的对象
封装
把一些功能的实现细节不对外暴露
继承
继承 ,组合
代码的重用
单继承
多继承,
2.7 经典类,深度优先, 新式类,广度优先
3.x 均是广度优先
class Foo(object):
def __init__(self,name,age,sex,salary,course):
self.salary = salary
self.course = course
多态
接口重用, 一种接口,多种实现
静态方法
只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性
类方法
只能访问类变量,不能访问实例变量
属性方法
把一个方法变成一个静态属性
反射
hasattr(obj,name_str) , 判断一个对象obj里是否有对应的name_str字符串的方法
getattr(obj,name_str), 根据字符串去获取obj对象里的对应的方法的内存地址
setattr(obj,'y',z), is equivalent to ``x.y = v''
delattr
异常
try :
code
except (Error1,Erro2) as e:
print e
except Exception :抓住所有错误,不建议用