一、类和实例
类(class): 类是用来描述具有相同的属性和方法的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例化。
对象: 通过类定义的数据结构进行实例化,对象包括两个数据成员(类变量和实例变量)和方法
类变量: 类变量在整个实例化的对象中是公用的,类变量是定义在函数体之外的。类变量通常不作为实例变量使用
实例变量: 定义在方法中的变量,只作用于当前实例
什么是类?什么是对象?
类是一个模板,是一类事务的抽象,包含不同的属性和方法
对象是类的具体化,类和对象的关系就像人和某一个具体的人的关系一样
#创建类
class Person(object):
# 初始化方法及构造函数
def __init__(self, name):
self.name = name
pass
# 类中的方法
def walk(self):
pass
# 根据类创建对象
wangwu = Person('王五')
ptyon中类的命名通常用大驼峰来命名,
函数则是使用下划线来进行命名
构造函数: 构造函数,是一种特殊的方法。主要是用来创建对象的时候初始化对象的,就是为对象的成员变量赋予初始值
面向对象的三大特征
面向对象的三大特征指的分别是:继承、封装和多态。
- 封装
封装指的就是把类固有的属性放到一个统一的地方,便于事项模块化的编程,使得结构更加清晰。
class Preson(object):
# 构造函数,记录人的基本的属性
def __init__(self, name, age):
self.name = name
self.age = age
pass
def walk(self):
# 人的行为,行走
print(f'{self.name}在行走')
pass
pass
# 实例化一个具体的人
wangwu = Preson('王五', 18)
print(wangwu.name)
wangwu.walk()
# 输出:
# 王五
# 王五在行走
其实封装就把某一类的属性和行为封装成一个整体,再通过整体具体出个体
- 继承
继承,就是相当于父亲的东西儿子可以拥有,如人可以在分为成年人、老年人和未成年人,虽然他们都继承人,但他们却又不同的行为。
class Preson(object):
# 构造函数,记录人的基本的属性
def __init__(self, name, age):
self.name = name
self.age = age
pass
def walk(self):
# 人的行为,行走
print(f'{self.name}在行走')
pass
pass
class AdultPreson(Preson):
# 成年人继承于人类
def work(self):
# 成年人的行为,工作
print(f'{self.name}在工作')
pass
pass
class YoungPreson(Preson):
# 未成年人继承于人类
def learn(self):
# 未成年人的行为,学校学习
print(f'{self.name}在学习')
pass
pass
# 实例化一个具体的成年人
wangwu = AdultPreson('王五', 28)
print(wangwu.name) # 继承父类的属性
wangwu.walk() # 继承父类的方法
wangwu.work() # 自己的方法
# 输出:
# 王五
# 王五在行走
# 王五在工作
- 多态
python因为不是一种强类型语言,所以python并不支持多态,而且pyhton
崇尚‘鸭子类型’,因为python的变量实在根据所赋予的值进行判断类型的,所以python本身就是多态的。