百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python零基础一周学(9)——Python 中的类

off999 2024-11-17 14:35 45 浏览 0 评论

学习大纲

学习目标

要达到的水平

第一个 Python 程序

会输出文字

变量类型初识

会创建字符串和数字这两种变量类型并学会数字运算的方法

条件语句

掌握三个关键字:if elif 和 else,并能用它们控制代码执行方向

常用的字符串操作

掌握对字符串进行切片,追加等操作

四大常用类型的操作

掌握这4种内置类型(list、tuple、dict 、set)的增删查改操作

循环语句

掌握 while 和 for 这两种循环方式

函数

掌握创建和调用函数的方法

文件操作

掌握文件的读写方法

掌握创建和使用类的方法


当前学习进展: 类

PS:本文转载自

@顺手牵羊

开始之前

本专栏下的代码绝大多数是 python 代码(除非特地说明),所以需要大家在学习之前安装一下 python 环境,如果没有安装的话,建议参考我之前特地写的一篇 python 及代码编辑器的安装教程

环境搭建

概要

之前有讲过,函数可以增加代码的健壮性以及可维护性,但是,如果函数多了,那么可能就没那么容易记了。在生活中,如果有一大堆文件,那么喜欢整理的人,往往会新建并对文件夹重命名,然后把同类型的文件归类在一起,经过这样子的分类之后,查找文件往往会更快。这也体现了物以类聚的思想。本篇文章将简述如何用类似的方法,对我们创建的多个函数进行归类。

正文

想必大家都知道 “人类”这个词吧,至于“人类的起源”咱们就不去探索了。人类往往有多个属性以及功能。例如年龄、性别、姓名、出生日期等属性,干饭、购物、睡觉等功能。下面将使用代码来对人类的部分属性以及功能进行简单的描述以让大家理解类是怎么创建以及调用的。

示例代码

# 以 class 关键字 + 类名(下面这个是叫Person)以创建一个类
class Person:
    def __init__(self, name: str = "", birthday="", gender="未知") -> None:
        '''
        进行一系列初始化操作
        '''
        # 初始化姓名
        self.name = name
        # 初始化性别
        self.gender = gender
        # 初始化生日
        self.birthday = birthday
        if len(name.strip()) == 0:
            print('人类世界多了一个人,但他还没有姓名。')
        else:
            print(f'人类世界多了一个人,姓名是: {self.name} 性别是: {self.gender}')

    def set_name(self, name: str) -> None:
        '''
        设置人的姓名
        '''
        self.name = name
        print(f'我的名字变成了: {name}')
?
    def set_birthday(self, birthday: str)->None:
        '''
        设置人的生日
        '''
        self.birthday = birthday
        print('我的父母记错了我的生日,现在我的生日被改成了:', birthday)
?
    def sleep(self, sleep_time: int)->None:
        '''
        休眠指定时间
        '''
        print(f'{self.name} 将休息 {sleep_time} 小时......')
?
    def eat(self, food_name: str)->None:
        '''
        吃东西
        ---
        参数:
        food_name: 要被吃的东西名称
?
        '''
        print(f'{self.name} 正在吃 {food_name}')
?
    def shop(self, shop_date: str, *items)->None:
        '''
        购物
        ---
        参数:
        shop_date: 购物日期
        items:可选参数,以逗号分隔可以传递多个
        '''
        print(f'{self.name} 在 {shop_date} 买了:', *items)
?
    def __str__(self) -> str:
        '''
        重写 __str__方法,描述人的基本信息
        '''
        destription = f'我的姓名是: {self.name}\n生日是: {self.birthday}\n性别是: {self.gender}'
        return destription
?
    def go_to_school(self, school_name: str)->None:
        '''
        上学
        ---
        参数:
        school_name: 学校名称
        items:可选参数,以逗号分隔可以传递多个
        '''
        print(f"{self.name} 要去 {school_name} 上学了")
?
?
# 实例化人类并定几个初始值
p = Person(name="小明", birthday="2021年2月11日", gender="男")
# 输创建的人的基本信息
print(p)
# 更改生日
p.set_birthday('2021年2月8日')
# 购物
p.shop('202年2月16日', '苹果', '香蕉')
# 吃东西
p.eat('苹果')
# 改名
p.set_name('大明')
# 休息
p.sleep(8)
# 上学
p.go_to_school("魔法学院")
?

示例代码运行结果

人类世界多了一个人,姓名是: 小明 性别是: 男
我的姓名是: 小明
生日是: 2021年2月11日
性别是: 男
我的父母记错了我的生日,现在我的生日被改成了: 2021年2月8日
小明 在 202年2月16日 买了: 苹果 香蕉
小明 正在吃 苹果
我的名字变成了: 大明
大明 将休息 8 小时......
大明 要去 魔法学院 上学了

结构剖析

创建方法描述

通过关键字class+类的名称+冒号+代码块

定义一个类示例代码

# 类名 A
class A:
    def __init__(self):
        print('成功实例化类A')

调用类的方法

# 类名 + 一对圆括号
A()

调用输出结果

成功实例化类A

类的继承

必要性

假设你已经有了一个类,但是某一天你需要搞一个新的聚合,但是大部分要聚合的东西跟之前的差不多,如果重新写代码无疑是浪费精力的,所以有一个好办法就是继承原有的东西,然后在此基础上增加新的功能或改写旧的东西。

示例代码

class A:
    def __init__(self):
        print('成功实例化类A。')
?
    def eat(self):
        print('我喜欢吃苹果。')
?
?
class B(A):
    def __init__(self):
        print('我继承了了类 A,你成功实例化了我。')
    # 在类 A 的基础上添加新的功能
?
    def new_function(self):
        print('我有新功能了!')
?
?
# 实例化类 A
a = A()
# 调用 A 中的 eat 方法
a.eat()
b = B()
# 尽管 B 中没有显示定义 eat 方法,但是因为它继承了A类,而A类中有 eat 方法,故其可以调用
b.eat()
b.new_function()
?

示例代码运行结果

成功实例化类A。
我喜欢吃苹果。
我继承了了类 A,你成功实例化了我。
我喜欢吃苹果。
我有新功能了!

写在最后

本篇文章主要讲了怎么使用 Python 创建、调用、继承类,以进一步理解面向对象编程的思想,进一步增加代码的健壮性和可维护性。最后,我一直认为个人的思考难免有疏漏之处,所以欢迎各路英雄前来赐教!(未经同意,勿转载哦)

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: