一、面向对象简介
面向对象(OOP)是一种对现实世界理解和抽象的方法,对象的含义是指在现实生活中能够看得见摸得着的具体事物,一句比较经典的描述是一切皆对象,Python 是一门面向对象的语言,面向对象编程简单来说就是一种封装代码的方式。
1、面向对象相关概念
-
类:描述具有相同属性和方法的集合,简单来说就是一个模板,通它来创建对象。
-
对象:类的实例。
-
方法:类中定义的函数。
-
类变量:定义在类中且在函数之外的变量,在所有实例化对象中公用。
-
局部变量:方法中定义的变量,只作用于当前实例。
2、面向对象三大特性
-
封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,提高复用性和安全性。
-
继承:一个类继承一个基类便可拥有基类的属性和方法,可提高代码的复用性。
-
多态:父类定义的引用变量可以指向子类的实例对象,提高了程序的拓展性。
二 、类属性和类方法
2.1类属性
-
定义在类里面,方法外面,定义的时候不需要self关键字,语法类似于定义普通变量
-
不需要把类实例化为对象,直接通过类名.属性名 使用
2.2类方法
-
类方法不需要把类实例化为对象,通过类名.类方法名调用
-
用@classmethod来修饰的方法,就是类方法
-
类方法的参数为 cls,在类方法内部通过 cls.类属性 或者 cls.类方法 来访问同一个类中的其他类属性和类方法;
-
类方法不需要实例化就可以调用,类方法只能访问同一个类中的类属性和类方法。
-
类方法的一个参数是cls(不是self)
-
在类方法内部如果使用类属性, cls.类属性名
-
类方法内部不能使用普通属性,也不能调用普通方法
-
因为类方法不需要对象的,但普通方法和普通属性一定需要通过对象调用
-
三、面向对象简单实现
定义类的格式
2.1 类
# 定义一个类
class StuInfo():
# 定义属性
age = "10"
addr = "hebei"
name = "tom"