这是我参与11月更文挑战的15天,活动详情查看:2021最后一次更文挑战。
面向对象编程(Object Oriented Programming
),简称OOP
,是一种程序设计思想。
面向过程与面向对象有什么区别?
- 面向过程:根据业务逻辑从上到下写代码;
- 面向对象:将数据与函数绑定到一起,进行封装。减少重复代码的重写过程。
类与对象介绍
类
是抽象的概念,仅仅是模板
。用来描述具有相同属性和方法的对象的集合。比如:
- 公司就可以表示成一个类。
某一个具体事物的存在,在现实世界中可以是看得见摸得着的。 比如:
阿里
代表了公司的中具体的一员。这就是对象。
类与对象的关系
在开发中,我们可以进行对象归类。
比如,分析班级同学公有特征归类:
option = {
title: {
text: '张三',
subtext: '三年二班'
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c}%"
},
toolbox: {
feature: {
dataView: {readOnly: false},
restore: {},
saveAsImage: {}
}
},
series: [
{
name:'漏斗图',
type:'funnel',
left: '10%',
top: 60,
//x2: 80,
bottom: 60,
width: '80%',
// height: {totalHeight} - y - y2,
min: 0,
max: 100,
minSize: '0%',
maxSize: '100%',
sort: 'descending',
gap: 2,
label: {
show: true,
position: 'inside'
},
labelLine: {
length: 10,
lineStyle: {
width: 1,
type: 'solid'
}
},
itemStyle: {
borderColor: '#fff',
borderWidth: 1
},
emphasis: {
label: {
fontSize: 20
}
},
data: [
{value: 60, name: '爱好'},
{value: 40, name: '年级'},
{value: 20, name: '年龄'},
{value: 80, name: '性别'},
{value: 100, name: '姓名'}
]
}
]
};
复制代码
那么,我们就可以将三年二班学生公有的特征进行归类。而建立一个学生类:
option = {
title: {
text: '三年二班'
},
tooltip: {},
series: [
{
type: 'graph',
layout: 'none',
symbolSize: 70,
label: {
show: true
},
edgeSymbol: ['circle', 'arrow'],
edgeSymbolSize: [4, 10],
edgeLabel: {
fontSize: 10
},
data: [{
name: '三年二班学生类',
x: 300,
y: 300
}, {
name: '张四',
x: 800,
y: 300
}, {
name: '李三',
x: 500,
y: 100
}, {
name: '王二麻子',
x: 550,
y: 500
}],
// links: [],
links: [{
source: 0,
target: 1
}, {
source: 0,
target: 2
}, {
source: 0,
target: 3
}],
lineStyle: {
opacity: 0.9,
width: 2,
curveness: 0.2
}
}
]
}
复制代码
类的构成
类由3个部分构成:
- 类的名称:类名
- 类的属性:一组数据
- 类的方法:允许对类进行操作的方法
⚠️注意: 类名通常采用驼峰式命名方式,尽量让字面意思体现出类的作用。 Python
使用class
关键字来定义类,其基本结构如下:
class 类名:
pass
复制代码
Python
中,可以根据已经定义的类去创建出一个个对象:
对象名 = 类名()
复制代码
定义一个完整的类:
# 定义
class 类名:
def 方法名(self,参数): # 类中函数:称为方法
pass
# 执行
s = 类名() # 创建对象(实例) 整个过程就是实例化
s.方法名(参数) # 调用类中方法
复制代码
对象初始化
在类当中定义方法时,会发现系统帮我们自动创建了self
参数,并且在调用对象的该方法时,也无需传入self
参数。那这个self
是什么?
实际上,我们需要明确self
的两个概念:
self
本身是形参;self
就是对象本身。
__init__()
称为初始化方法,也可称为构造方法。在创建对象时,会自动执行该方法,为对象的属性设置初始值:
class Student(object):
def __init__(self,name,age):
self.name = name
self.age = age
def info(self):
print(self.name,self.age)
ls = Student("李四",18)
ls.info()
复制代码
__str__()
打印输出对象变量时,同时打印自定义的内容,将自定义内容通过return关键字返回:
class Students:
def __init__(self):
self.name = "李四"
self.age = 18
def __str__(self):
return self.name
ls = Students()
print(ls) # 李四
复制代码
⚠️注意: 返回值必须是字符串。