Python基础-面向对象

Python基础-面向对象

1.编程的分类:

  • 面向过程

  • 函数式编程

  • 面向对象

1.1面向过程

所谓过程就是解决问题的一个步骤,一步一步的按照流程走,有先后顺序。它的整个设计过程就好比流水线,思维上比较机械化。
优缺点:

  • 优点:

    • 复杂的问题流程化,将问题简化。
  • 缺点:

    • 拓展性不好,

1.2 面向对象

核心是对象。
定义:

  • 对象是一个数据以及相关行为的集合

  • 面向对象是功能上指向建模对象

通过数据行为方式来描述交互对象的集合

在Python中,一切皆为对象。

优缺点:

  • 优点:

    • 解决程序的拓展性
  • 缺点:

    • 复杂度远高于面向过程
    • 交互式解决问题,无法准确预测结果

    在现实世界中以我们为例

    object1:
        Tom
    特征:
    	school=zucc
        name=tom
        age=20
        sex=male
    技能:
    	eat
        sleep
        study
        
    object2:
        Nicole
    特征:
    	school=zucc
        name=Nicole
        age=21
        sex=male
    技能:
    	eat
        sleep
        study
        sing
    
        
    

类就是类别总类

对象就是特征合技能的统一体

类是这一系列相似对象的特征和技能的结合

对于现实世界,现有个体(对象),才有类型,对于程序,先有类,才有对象

2.面向对象的编程

oop(object oriented programming)

其实是一种程序设计思想。oop把对象作为程序的一个基本单元,一个对象就包含了数据和操作数据的函数。

在Python中,所有数据类型都可以视为对象,同时也可以自定义对象。

自定义对象数据类型就是面向对象中类(class)的概念

demo:

假如要处理学生的成绩。为了表示学生的成绩:

  • 面向过程
stu1={
   'name':'Tom','score':99}
stu2={
   'name':'Nicole','score':23}
利用函数来实现:

def find_score(stu):
    print(stu['name'],':',stu[score])

2.1类的定义

​ 类是用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

定义:

class calssname(object):
    'dicstring'
    class_statement

2.2创建一个空类

类的命名:大驼峰式(变量名称的单词的首字母大写)

class The_First:
    pass     #相当于一个占位符

类的作用是一个模板,我们可以在创建实例的时候,把一些我们认为必须要绑定的属性填写进去。这时就通过

__init__方法,在创建实例的时候,绑定相关的属性。

在类中定义方法时,第一个参数必须是‘self

self代表的是实例,而非类。

__init__方法:

  • 为对象初始化自己独有的特征
  • 该方法中可以有任意的Python代码,但是不能有返回值

2.3类中的概念

  • **类变量:**类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • **数据成员:**类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
  • **方法重写:**如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • **局部变量:**定义在方法中的变量,只作用于当前实例的类。
  • **实例变量:**在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
  • **继承:**即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
  • **实例化:**创建一个类的实例,类的具体对象。
  • **方法:**类中定义的函数。
  • **对象:**通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

2.4数据封装

class Student:
    def __init__(self,name,score):
        self.name=name
        self.score
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值