Python面向对象(一)

本文深入讲解了面向对象编程中的工厂类概念,包括类的定义、对象属性和行为,以及如何通过类创建实例并调用方法。重点介绍了工厂方法和关键术语,如类、对象、封装、继承和多态。以工厂为例,展示了如何实现检验、组装、包装和出货功能。


活动地址:优快云21天学习挑战赛

一. 面向对象是什么?

在现实生活中,人的思考是抽象的,我们会将遇到的事物抽象化,这时就出现了对象的类型——类。先定义类,然后由类去创建对象,最后由对象去管理程序。就像人类思考一样,先抽象,后实例化,最后去执行。面向对象编程就是一种不断抽象数据和不断抽象方法的过程。

二、什么是对象?

万物皆对象。现实世界中我们能见到的、能触碰到的所有人和事物都是对象,如人、猫、狗、汽车等。在计算机世界里,我们用虚拟的编程代码将现实世界里的事物抽象成对象,然后用面向对象编程思想来解决现实世界中的种种难题。人们在认识世界时,会将对象简单处理为两部分——属性和行为。

对象具有属性,它可以称为状态,也可以称为变量。正如每个工厂有名称、位置、面积、产品等属性,我们可以用这些数据来描述对象的属性。

举例:对象“工厂”的属性
在这里插入图片描述
对象具有行为,也可以称为方法,就如同每个工厂都要能做:检验、组装、包装、出货。面向对象编程将完成某个功能的代码块定义为方法,方法可以被其他程序调用,也可以被对象自身调用。

举例:对象“工厂”的行为
在这里插入图片描述

三、面向对象的重要术语

  • 类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。
  • 类属性:类属性在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外,通常不作为实例变量使用。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写。
  • 实例属性:定义在方法中,只作用于当前实例的类。
  • 封装:把需要重用的函数或者功能封装,方便其他程序直接调用
  • 继承:指一个派生类继承基类的字段和方法。继承也允许把一个派生类的对象作为一个基类地对象对待。
  • 多态(polymorphism):一个函数有多种表现形式,调用一个方法有多种形式,但是表现出的方法是不一样的。
  • 实例化:创建一个类的实例,一个类的具体对象。
  • 方法:类中定义的函数。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

四、类的语法

类必须被定义后才能使用,定义一个类也就是定义这一类对象的模板,定义它的属性和方法。Python中提供了class关键字来声明一个类,class中有成员属性和成员方法。Python中类的定义格式如下:

class  [类名]:
    [语法块]

定义一个类的3要素:

  1. 类名:这类事物的名字,满足大驼峰命名法( 说明:每个单词首字母大写)
  2. 属性:这类事物具有什么样的特征
  3. 方法:这类事物具有什么样的行为

定义一个类:

需求:
工厂检验区、工厂组装区、工厂包装区、工厂出货区

分析:
定义一个工厂类
定义4个方法:检验、组装、包装、出货
按照需求,不需要定义属性

class Factory:
    '''这是一个工厂类'''
 
    def jianyan(self):
        print('这是工厂里面负责检验的。')
 
    def zuzhuang(self):
        print('这是工厂里面负责组装的。')
 
    def baozhuang(self):
        print('这是工厂里面负责包装的。')
 
    def chuhuo(self):
        print('这是工厂里面负责出货的。')
 
factory1=Factory()
factory1.jianyan()
factory1.zuzhuang()
factory1.baozhuang()
factory1.chuhuo()
 
#下面是输出
'''
这是工厂里面负责检验的。
这是工厂里面负责组装的。
这是工厂里面负责包装的。
这是工厂里面负责出货的。
'''

五、方法中的self参数

由哪一个对象调用的方法,方法内的 self 就是 哪一个对象的引用

  • 在类封装的方法内部,self 就表示 当前调用方法的对象自己
  • 调用方法时,不需要传递 self 参数
  • 在方法内部,通过 self. 访问 对象的属性
  • 在类的外部,通过 实例名. 访问 对象的属性和方法

六、__方法名__格式的方法

这种格式的方法是Python提供的内置方法,说明如下:

方法名类型类型
__new__方法创建对象时,会被 自动 调用。用于控制生成一个新实例的过程,它是类级别的方法。至少要有一个参数cls,代表要实例化的类。__new__方法的调用是发生在__init__之前的。
__init__方法对象被初始化时,会被 自动 调用。用于初始化一个新实例,控制这个初始化的过程,比如添加一些属性, 做一些额外的操作,发生在类实例被创建完以后。它是实例级别的方法。
__del__方法对象被从内存中销毁前,会被 自动 调用。
__str__方法返回对象的描述信息,print 函数输出使用。当使用 print 输出对象的时候,只要自己定义了__str__方法,那么就会打印从在这个方法中return的数据。__str__方法需要返回一个字符串,当做这个对象的描述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值