Python的学习(十四):面向对象
面向对象三大特征
封装
提高程序的安全性。
-
将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法,这样不需要关心内部具体实现细节,从而隔离了复杂度。
class Car: def __init__(self,brand): self.brand = brand def start(self): print('汽车已经启动。。。') car = Car('宝马X5') car.start() print(car.brand)
-
在Python中没有专门修饰符用于属性的私有,如果希望属性不在类外部被访问,前面使用两个“_”
class Student: def __init__(self,name,age): self.name = name self.__age = age#年龄不希望被外部使用 def show(self): print(self.name,self.__age) stu = Student('张三',20) stu.show() #在类的外部不能直接使用age属性 #查看类的所有属性 print(dir(stu)) #可以通过_Student__age访问 print(stu._Student__age) #不建议访问
继承
提高代码的复用性。
语法格式:
class 子类类名(父类1,父类2.....):
pass
python支持多继承!!!!!!!!!!
如果一个类没有继承任何类,那么默认继承Object类。
定义子类时,必须在其构造函数中调用父类的构造函数。
#定义一个父类
class Person(object):
def __init__(self,name,age):
self.name = name
self.age = age
def info(self):
print(self.name,self.age)
#定义一个学生子类
class Student(Person):
def __init__(self,name,age,stu_no):
super().__init__(name,age)
self.stu_no = stu_no
#定义一个老师子类
class Teacher(Person):
def __init__