默认情况下,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
实例属性和类属性
千万不要对实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性。
实例属性属于各个实例所有,互不干扰;
类属性属于类所有,所有实例共享一个属性;
不要对实例属性和类属性使用相同的名字,否则将产生难以发现的错误。
网友评论