数据(对象,如列表对象)+操作(对象的方法,如对自身添加数据)=程序
数据:基本数据类型:数字:整数
浮点数
小数
分数
复数
字符串
操作:自身操作:取:按个取:索引
按范围取:切片
给:赋值
删:del
双目操作:算术操作:算术运算:+、-、×、/、%、//
布尔运算:&、|、~、^
比较操作:>、<、==、!=、>=
逻辑操作:and、or、not
控制流:选择:双分支:if
多分支:switch
I/O操作:
多元素操作:函数
块操作:程序
类编程:基类: 数据:类数据(类内类外共享)
实例数据(公私有)
方法:初始化方法
自定义方法
重载运算符
子类(多基类继承):数据:类数据
实例数据(公私有)
方法:初始化方法
自定义方法(可重写)
重载运算符
注意:
1、为什么定义初始化方法和自定义方法时候,第一个参数都是self,初始化的数据也是指明self?
self用于实例化对象时候,self被替换成绑定的对象名称,用于指明类里面的方法和数据生成一份给此对象。既属于自己,又区别于其他实例化对象的数据和方法,各个对象数据和方法各自无关
2、如何重写基类方法?
方法名称不变,参数可变,函数体可变
3、如何实现多继承,继承的意义?
子类名称(基类1,基类2...);子类继承基类的所有东西,即数据和方法。编程思维上好处,继承式编程,逻辑思维清晰;代码量上少了很多,子类需重复的,基类有的就不用写了;具体操作:子类直接向下兼容可调用基类数据和方法。
4.初始化的作用self.__inin__(self,a,b)?
实例化会自动执行这个初始化函数,给数据属性传入实参值
5.如何实现重载运算符?
class Vector:
def __init__(self, a, b):
self.a = a
self.b = b
def __str__(self):
return 'Vector (%d, %d)' % (self.a, self.b)
def __add__(self,other):
return Vector(self.a + other.a, self.b + other.b)
v1 = Vector(2,10)
v2 = Vector(5,-2)
print (v1 + v2)
6.如何实现实例化数据公私有?
_单下划线是子类皆可访问,私有化标志;__双下划线自己实例化的类对象也不能访问,绝对的私有化,但是类内可以调用。
7.实例化后,如何操作属性和函数,寻找机制?
使用点号 . 来访问对象的属性,实例对象名称.数据属性(函数);类变量也是,类名称.数据属性,类内和类外皆可使用;先从自己类再到基类,基类并行的从左到右需找
8.何为销毁机制?具体如何操作
可以节省内存,不用的对象可销户腾出空间,在类里边定义好析构函数"def __del__(self):",在下面调用del 对象时候,和实例化对象自动调用初始化建立实际对象数据一样,自动调用析构函数,释放对象
class Point:
def __init__( self, x=0, y=0):
self.x = x
self.y = y
def __del__(self):
class_name = self.__class__.__name__
print class_name, "销毁"
pt1 = Point()
pt2 = pt1
pt3 = pt1
print id(pt1), id(pt2), id(pt3) # 打印对象的id
del pt1
del pt2
del pt3
9、重写方法不继承,若需要则用super表示调用基类初始化方法
10、self调用类内方法