1.作业
class Shape(object):
def __init__(self,color):
self.__color = color
def getcolor(self):
return self.__color
def setcolor(self,color):
self.color = color
class Rectange(Shape):
def __init__(self,length,width):
self.__length = length
self.__width = width
def getPerimeter(self):
print( 2*self.__length+2*self.__width)
def getArea(self):
print(self.__length*self.__width)
a = Rectange(10,10)
a.getArea()
a.getPerimeter()
2.笔记
面向对象:把功能和数据封装成为一个整体
实例方法:
self:指向当前调用的实例对象,python解释器会自动传参
self的形参名不一定非得叫self,任何名字都可以,但一般约定俗成叫self
魔术方法:
1.__init__
创建对象时自动调用,必须传参
在对象刚刚创建成功时进行初始化设置,会自动执行这个方法
2.__str__
一定要有返回值
3.__lt__
定义<符号的行为
私有属性:其实就是python解释器变名
python中的私有,实际上都是假的,只是对私有(属性或方法)进行了重命名
将__属性名改为_类名__属性名
私有方法:
在def后的方法名前面加__
封装:
真正意义上的封装:将类的属性封装隐藏,提供公开的方法(getter)和(setter)来访问
继承:实现在一个类中使用另一个类中的代码
单继承 多继承
class Rectange(Shape):
def __init__(self,length,width):
self.__length = length
self.__width = width
重写:觉得父类方法不合适,在子类中定义一个和父类方法名相同的方法
super