iOS开发人员如何学习Python编程15-面向对象编程1

语言: CN / TW / HK

这是我参与11月更文挑战的15天,活动详情查看:2021最后一次更文挑战

面向对象编程(Object Oriented Programming),简称OOP,是一种程序设计思想。

面向过程与面向对象有什么区别? - 面向过程:根据业务逻辑从上到下写代码; - 面向对象:将数据与函数绑定到一起,进行封装。减少重复代码的重写过程。

类与对象介绍

是抽象的概念,仅仅是模板。用来描述具有相同属性和方法的对象的集合。比如: - 公司就可以表示成一个类。 某一个具体事物的存在,在现实世界中可以是看得见摸得着的。 比如: - 阿里代表了公司的中具体的一员。这就是对象。

类与对象的关系

在开发中,我们可以进行对象归类。

比如,分析班级同学公有特征归类:

``` option = { title: { text: '张三', subtext: '三年二班' }, tooltip: { trigger: 'item', formatter: "{a}
{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() ```

  1. __str__()打印输出对象变量时,同时打印自定义的内容,将自定义内容通过return关键字返回: 

``` class Students: def init(self): self.name = "李四" self.age = 18

def __str__(self):
    return self.name

ls = Students() print(ls) # 李四 ``` ⚠️注意: 返回值必须是字符串。