专栏首页我和PYTHON有个约会22. 企业级开发基础3:类和对象

22. 企业级开发基础3:类和对象

本节内容开始,讲解企业级项目开发基础部分:面向对象;主要从对象的抽象、对象的创建,对象中特殊的方法,面向对象的封装、继承、多态等各个方面来进行讲解。

本节主要内容

  • 什么是对象
  • 类和对象的概念和区别
  • 类的定义
  • 对象的初始化
  • 对象的使用
  • self关键字

1. 关于对象那点事儿

首先,我们先回顾一下关于程序

程序:是用来按照一定的顺序解决问题的 解决问题:解决一个实际问题的核心是处理数据 数据:python中,认为所有的数据都是对象

此时,出现了一个模糊的概念:对象; 那什么是对象呢?

从哲学上说:一切皆对象。

路人甲说:“对象就是看得见摸的着的东西。”

路人乙说:“关于这个东西和对象,有木有更加细致一点的描述呢?”

路人丙说:“对象,就是看得见摸的着的,可能有自己的特征,可能有自己的行为的一种东西。 比如我们都看得见的电脑,电脑有自己的特征<电脑品牌、电脑的尺寸、电脑CPU型号、电脑的硬盘容量等等>,电脑也有自己的行为<播放视频、播放音乐、玩游戏、写文档等等>。 特征是电脑自己静态的属性,一般用名词来表示,行为是电脑的动作,一般用动词来表示。”

大师:对象,就是有自己的特征和行为的,实际存在的一种物体!我们描述对象,就是使用各种数据来描述对象的特征和行为的过程。

2. python中的类和对象

python中的对象,一般分为两种:

  • 内置对象
  • 自定义对象

python已经提供了大量的内置对象,方便我们的操作,如数字对象、字符串对象、列表对象、字典对象、元组对象、集合对象、等等;但是又说了~内置对象是不是能描述我们项目中用到的所有的数据类型呢?明显这是不可能的,没有任何一门编程语言能内置好这个世界上出现的或者未曾出现的各种对象,所以除了内置对象,我们还需要自定义对象,自定义类型和对象也是我们本章开始说的重点的内容

2.1. 内置对象

python的内置对象,一般都和我们使用的python模块有莫大的关系,官方纯粹的python中就内置了大量的对象

内置对象

描述

使用方式

数字对象

数字在python中就是对象

1、3.14

字符串对象

字符串也是对象

“hello”

列表对象

List

[1,2,3,4,5,6,7]

元组对象

tuple

(1,2,3,4,5,6)

集合对象

set

{1,2,3,4,5,6,7,8}

字典对象

dict

{"name":"jerry", "age":56}

文件对象

file

myFile = open("d:/abc.txt")

其他对象

其他使用的模块

easygui.msgbox("你好")

2.2. 自定义类型和对象

类:就是一种数据的类型,就是一种类型,简称类。是对一部分具有相同特征(属性)和相似行为(方法)的对象的抽象。 如:人类,就是一种类,人类表示的是人的类型,类型只是一个描述数据的概念,是一个代号,不是实际存在的事物;这个类可以定义人具有的特征和行为,定义特征(姓名、年龄、性别),定义行为(吃饭、睡觉、工作)。

对象:对象就是某个类表示的具体的实际存在的事物了,具有具体数据来描述自己的特征,也有具体的行为操作。 如:张小凡,就是一个具体的人,有自己具体数据描述的特征(姓名:张小凡、年龄:22、性别:男),有自己具体的行为(吃烧鸡、睡大床、工作->砍竹子)

大师:类,就是类型,是一种数据类型,是一部分具有共同特征(属性)和行为(方法)的对象,抽象出来的一个概念、一个代号。 对象,就是类描述的类型中一个具体存在的事物,是一个具有明确特征数据和行为操作的物体。

3. python中定义类和创建对象

定义类的步骤:

  • 首先根据我们操作的对象来抽象共同的特征和行为,也称为属性和方法
  • 通过python中的class关键字来定义一个类
  • 在类中,定义这类事物的属性和方法
  • 在使用时,通过类名称()的语法来创建对象
# 定义类的语法结构
class 类名称(object):
    def __init__(self, 属性列表):
        初始化属性
    def 方法名称(self):
        方法的操作代码

# 使用类来创建对象
变量名称 = 类名称(属性值)

3.1. 实际操作

3.1.1 通过一个模拟项目,来抽象一个类

创建一个游戏项目,游戏中有玩家的类型,玩家有昵称、账号、密码、职业等属性,有修炼的方法

# 定义玩家类型
class Player(object):
    def __init__(self, nickname, username, userpass, userjob):
        self.nickname = nickname
        self.username = username
        self.userpass = userpass
        self.userjob = userjob
    def growUp(self):
        print(self.nickname + "在修炼中...")
3.1.2 使用类型

创建好的类型,在后续的代码中,就可以通过类名称()来创建不同的对象并使用这些对象数据了

zhangXiaoFan = Player("张小凡", "xaiofan", "123456", "青云门弟子")
biYao = Player("碧瑶", "biyao", "123123", "鬼王宗少宗主")

# 使用对象的属性
print(zhangXiaoFan.nickname)
print(zhangXiaoFan.userjob)
# 调用对象的行为方法
zhangXiaoFan.growUp()

# 使用对象的属性
print(biYao .nickname)
print(biYao .userjob)
# 调用对象的行为方法
biYao .growUp()

# 执行结果:通过执行的结果我们可以看到不同对象的数据互相是独立的
张小凡
青云门弟子
张小凡在修炼中...
碧瑶
鬼王宗少宗主
碧瑶在修炼中...

总结及补充:

1.类是一种数据类型的简称、数据类型的简称、类型的简称,是一类具有共同属性和相似行为的对象抽象出来的一个概念、一个代号,统称某类事物 2.对象是类的具体存在的事物,代码中是根据类创建的具体的实例对象 3.类中的属性也是一种变量,我们通常将类中的属性称为对象的成员变量或者成员属性,将类中的方法称为成员方法

未完待续,请继续参考后续章节~面向对象


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 27. 企业级开发基础8:面向对象扩展

    前面的章节中,我们已经学习过面向对象的基本操作、面向对象的三大特征的详细操作,对于面向对象有了一个初步的了解和认知。 本节内容会针对面向对象的程序设计进行一部...

    大牧莫邪
  • 24. 企业级开发基础5:面向对象特征(封装)

    在我们程序开发过程中,定义好类型之后就可以通过类型来创建对象 如:我们定义一个中华人民共和国公民的类型

    大牧莫邪
  • 大牧絮叨设计模式:原型模式

    原型模式(Prototype)[GOF95]是一种对象的创建模式,通过给定一个参考的原型对象来指定要创建的对象的类型及数据,然后复制该对象创建更多的相同对象的方...

    大牧莫邪
  • 《Objective C编程》笔记

    1.为什么main()总是返回0?可以将main()的返回结果视为“粗欧文报告”,这样0就是好消息,没有错误就是成功。 2.消息:消息发送(指令)必须写在一对...

    nimomeng
  • 经典面试题-列举JSP的内置对象,同一应用中页面有哪些方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • 关于对象池的一些分析

    在日常的开发工作中,我们可能使用或者听说过对象池,线程池以及连接池。本文将介绍对象池的产生缘由,具体实现细节,以及需要注意的问题。

    技术小黑屋
  • 《JavaScript 模式》读书笔记(1)— 简介

      广义上的模式是指“重现事件或者对象的主题,……它是一个可以用来产生其他事物的模版或者模型”。在软件开发过程中,模式是指一个通用问题的解决方案。一个模式不仅仅...

    zaking
  • JAVA虚拟机垃圾回收算法原理

       除了释放不再被引用的对象外,垃圾收集器还要处理堆碎块。新的对象分配了空间,不再被引用的对象被释放,所以堆内存的空闲位置介于活动的对象之间。请求分配新对象时...

    用户3003813
  • 《Head First 设计模式》笔记

    软件开发的一个不变真理:不管当初软件设计得多好,一段时间后,总是需要成长与改变,否则软件就会“死亡”。

    谛听
  • PHP深复制与浅复制

    PHP5使用了Zend引擎II,对象被储存于独立的结构Object Store中,而不像其它一般变量那样储存于Zval中(在PHP4中对象和一般变量一样存储于Z...

    用户7657330

扫码关注云+社区

领取腾讯云代金券