Python面向对象(一)


活动地址:CSDN21天学习挑战赛

一. 面向对象是什么?

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

二、什么是对象?

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

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

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

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

三、面向对象的重要术语

  • 类(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__方法需要返回一个字符串,当做这个对象的描述。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python面向对象编程是一种编程范式,它将程序组织成对象的集合,每个对象都有自己的属性和方法。在Python中,可以通过定义来创建对象,并通过实例来创建具体的对象。引用[1]中的代码示例展示了一个Animal,其中包含了初始化方法和一个__str__方法来返回对象的描述信息。通过这个,可以创建Animal对象,并通过print函数输出对象。引用中的代码示例展示了如何使用@property装饰器来定义的属性和属性的访问方法。通过这种方式,可以在访问属性时像访问普通属性一样使用点号,而不需要使用方法调用的方式。引用中的代码示例展示了多态在Python中的应用。多态是面向对象编程的重要概念,它允许不同的对象以相同的方式对外部访问,但具体的实现可能不同。在这个示例中,father、son和daughter都继承了father,并重写了tell方法。通过调用不同的对象的tell方法,可以看到不同的输出结果。总之,Python面向对象编程是一种灵活且强大的编程方式,它允许开发者以对象为中心来思考和组织代码,提高了代码的可读性和可维护性。通过定义、创建对象和使用的属性和方法,可以实现丰富多样的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python面向对象(全套)](https://blog.csdn.net/Thewei666/article/details/126652501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值