Python学习第八天 2020.8.8 面向对象
1、类:首字母大写,单词之间不用连接符,而用首字母大写;
2、类的实例化: student = Student()
3、调用类下的方法:student.print_file()
4、类最基本的作用:封装
类内部使用变量,需要用“self.”进行引用,如:
函数调用不要放在类里;
5、方法:设计层面;函数:程序运行、过程式的一种称谓;
类:更倾向于方法,类中的,更倾向于函数;
数据成员:倾向于体现类的封装性;
6、实例化:用已有模板创建一个新的对象;
7、构造函数:def __init__():
构造函数的调用是自动进行的;当然也可以自己主动显式的进行调用;
构造函数返回值只能是None;
8、局部变量不会覆盖全局变量;
9、类变量:和类相关的变量;
实例变量:和对象相关的变量;
10、实例方法:
调用实例方法时不需要传参;
构造函数用来初始化类的各种特征;实例方法用来调用和赋值;
11、类方法:
,cls就是class的简写;
最好不要对象去调用类方法;
12、静态方法:
静态方法可以同时被类和对象调用;静态方法最好不要经常使用;当静态方法和类和对象没有太大关系时可以使用;
13、成员可见性(变量和方法的可见性):
类包括内外调用;
类的不安全性:当类在外部被调用时,就不安全了;
通过方法对数据变量进行修改,比直接对数据变量进行修改安全很多;
要想不让数据变量(public)被修改,将其改为私有的(private),但是python不支持这两个关键字,在方法/变量名前加两个下划线,表示私有,
在变量前加“__”,变为私有变量,再从外部进行修改时,不会报错,是创建了一个新的实例变量,和原来的是不同的;(Python私有变量的保护机制就是给它改名..)
14、面向对象三大特性:继承性、封装性、多态性
调用父类方法:
上图是用类调用实例方法,本身不合理;但是如果要用的话,记得传入self;
子类调用父类方法不推荐:如果要换个父类继承的话,需要进行大量代码修改;
15、super:以super进行父类的调用