概念之类的去百度一下...
基础
类
属性 实例变量 类变量(默认共享) 私有属性(__var)方法 构造方法 析构方法或析构函数 私有方法
对象: 实例化一个类之后得到的对象
封装
把一些功能的实现细节不对外暴露
类的初始化(__init__): 就是给对象定义一些自己的特征,不能有返回值
继承
代码的重用单继承多继承 2.7的经典类-->深度优先,新式类-->广度优先 3.x 均是广度优先 class Foo()
多态
接口重用,一种接口,多种实现
高级属性:
静态方法 与类无关,不能访问类里的任何属性和方法类方法 只能访问类变量属性@property 把一个方法变成一个静态属性反射 getattr(obj,str) setattr(obj,str,val) hasattr(obj,str)
属性引用
ff对象特征: name = 'ff' sex = famale school = 'qh' 技能: def talk(self): print('很炫') def run(self): print('is running') jm对象特征: name = 'jm' sex = male school = 'qh'技能: def talk(self): print('is talking') def run(self): print('is running') 总结类(学 python 的人)class study_person:共同的特征 school = 'qh'共同的技能 def talk(self): print('is talking') def run(self): print('is running')
class Sutdent: school = 'qh' #数据属性 也就是类的变量,类下面的方法的共同的属性 def __init__(self,name,sex): #函数属性 self.name = name self.sex = sex def talk(self): print('is talking')def walk(self): print('is running')ff = Study_person('ff','famale')mm = Study_person('mm','male')...例子太多,先不写了
类的用法:
- 实例化产生对象
ff = Student('ff','famale')
jm = Student('jm','male')
- 属性引用
数据属性
print(类名.__dict__)
print(Student.school)
#属性修改
Student.school = 'bd'
#增
Student.xx = '666'
#删
del Student.xx
函数属性
print(Student.talk)
print(Student.walk)
对象的用法
对象本身并没有函数属性,只存放了对象自己特有的特征,它的特征在类里 (school)
class Sutdent: school = 'qh' #数据属性 def __init__(self,name,sex): #函数属性 self.name = name self.sex = sex def talk(self): print('is talking')def walk(self): print('is running')ff = Student('ff','famale')jm = Student('jm','male')
print(ff.name)
print(ff.sex)
print(ff.school,id(ff.school))
print(jm.school,id(jm.school))
print(Student.school,id(Student.school))
如果school在类的外部, 则无法访问.
产生一个类会有一个类的__dict__,产生一个对象会有一个对象的__dict___(实例化一个类后得到的对象),共有特征去类里找.
绑定方法 #特性: 自动传值
ff.walk() #ff.walk(ff) #Student.walk(ff) 把调用者当做第一个参数传给walk #会自动传值