04面向对象编程(OOP)

默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中

面向对象编程的三大特点:数据封装、继承和多态

封装:

把客观事物用抽象的类代表,并且类可以控制自身数据与方法的可见性

既然Student实例本身就拥有这些数据,要访问这些数据,就没有必要从外面的函数去访问,可以直接在Student类的内部定义访问数据的函数,这样,就把“数据”给封装起来了

封装类的数据和逻辑,不用知道内部实现的细节

继承:

当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。

子类获得了父类的全部功能,子类也可以定义自己的属性和方法

多态:

同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果

父类或接口声明的变量可以引用子类对象,这就叫多态

应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承 

派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性可维护性。//多态的真正作用

访问限制:

如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

要访问可以添加get_方法,要获取可以添加set_方法:

class Student(object):

def__init__(self, name, score):

    self.__name = name 

    self.__score = score

实例属性和类属性

千万不要对实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性。

实例属性属于各个实例所有,互不干扰;

类属性属于类所有,所有实例共享一个属性;

不要对实例属性和类属性使用相同的名字,否则将产生难以发现的错误。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容