python编程基础-task5-面向对象的编程

2023-11-13

(一)类的例子

class Song(object):   #class表示要创建类,Song是类的名称,

    def __init__(self, lyrics):   
         self.lyrics = lyrics #这里是设置了lyrics是的全局变量,后面的类里都可以使用这个参数,必须要用这个
#根据类 Song 创建对象
#自动执行Song类的 __init__方法

    def sing_me_a_song(self):     #定义sing_me_a_song函数
         for line in self.lyrics:  #采用for循环获取每一句歌词
            print(line)           #打印出来

Thursday_song = Song(["今天星期四明天星期五",
                    "再坚持一天然后星期天",
                    "星期天不上班一直睡到下午",
                   "这就是我废物的一天"])


important_words = Song(["好不容易来人间一趟",
                         "一定要去看看太阳~"])

Thursday_song.sing_me_a_song()

impotent_words.sing_me_a_song()
今天星期四明天星期五
再坚持一天然后星期天
星期天不上班一直睡到下午
这就是我废物的一天
好不容易来人间一趟
一定要去看看太阳~

常见问题:

为什么我在类下面用 init 函数或者其他函数的时候要用 self ?

如果你不用 self,那么像 cheese = ‘Frank’ 这样的代码就会很含糊,计算机不知道你是指实例的 cheese 属性还是 一个叫做 cheese 的局部变量。

而用 self.cheese = ‘Frank’ 的话就会很清晰,你是指实例的属性 self.cheese 。

(二)学着去说面向对象

类(class) :告诉 Python 创建一个新类型的东西

对象(object)两种含义:最基本类型的东西, 任何实例。

实例(instance) :当你告诉 Python 创建一个类的时候你所得到的东西。

def :你如何在类里面定义一个函数。

self :在一个类的函数里面,self 是被访问的实例/对象的一个变量。

继承(inheritance) :关于一个类能从另一个类那里继承它的特征的概念,很像你和你的父母。

组合(composition) :关于一个类可以由其他一些类构成的概念, 很像一辆车包含几个轮子。

属性(attribute) :类所拥有的从组合那里得到的特性,通常是变量。

is-a :一种用来表达某物继承自一种东西的表述, 就像“三文鱼是一种鱼”。

has-a :一种用来表达某物是由一些东西组成或具有某种特性的表述,就像“三文鱼有一个嘴巴”。

短语训练:

class X(Y) :
创建一个名为 X 并继承自 Y 的类。

class X(object):

def init(self, J)

类 X 有一个带有 self 和 J 参数的 init 函数。

class X(object):

def M(self, J):

类 X 有一个带有 self 和 J 参数的 M 函数。

foo = X():

设 foo 为类 X 的一个实例。

foo.M(J)

从 foo 那里获取 M 函数,并用 self 和 J 参数来调用它。

foo.K = Q

从 foo 那里获取 K 属性,并设它为 Q

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python编程基础-task5-面向对象的编程 的相关文章

随机推荐

  • mybatis-plus 新增/修改实现自动填充指定字段

    需要修改的字段在模型类上添加 TableField fill FieldFill xxx 注解 FieldFill的选项 哪个字段在什么时候填充需要手动设置注解 新建一个MetaObjectHandler的实现类MyMetaObjectHa
  • spyder debug

    按钮作用 1 debug file 进入调试 2 run current line 运行当前行 3 step into function or method of current line 进入函数或方法内运行 4 run until cu
  • 节点对于ip的重要性

    网络节点是选择代理IP的主要标准 那么 你知道节点对代理IP质量有什么影响吗 神龙IP为你解答 浅析节点对代理IP的影响 1 代理IP的节点越多 重复率越低 全球IPv4网络非常有限 国内IPv4网络也是如此 各地区IPv4网络更加有限 代
  • 63. Unique Paths II

    思路1 这个题目第一个思路还是用DFS 和第62题一样 但是在递归的时候需要判断有无障碍物 因为第62题用的DFS Leetcode提示Time Limit Exceeded 所以这道题没有尝试DFS的做法 而是直接使用了DP 思路2 根据
  • Anaconda运行python文件

    一 打开Anaconda Prompt 二 切换到要运行的python文件所在文件夹 1 先切换到该盘 例我的是D盘 2 切换到该文件夹 cd A文件夹 cd A文件夹绝对路径 三 运行python文件 例运行test py文件 pytho
  • Python基于词袋模型特征和TFIDF特征进行支持向量机模型中文邮件分类项目实战

    说明 这是一个机器学习实战项目 附带数据 代码 文档 视频讲解 如需数据 代码 文档 视频讲解可以直接到文章最后获取 1 项目背景 随着互联网的发展 越来越多的用户通过互联网来交流 电子邮件成为人们日常生活交流的重要工具 用户每星期可能收到
  • react条件渲染

    在React 中 你可以创建不同的组件来封装各种你需要的行为 然后 依据应用的不同状态 只渲染对应状态下的部分内容 React中的条件渲染和javascript中的一样 使用javascript运算符if或者条件运算符去创建元素来表现当前的
  • Jog运动模式

    Jog 运动 就是按住按键 电机一直走 弹起按键电机停止 在 Jog 运动模式下 各轴可以独立设置目标速度 加速度 减速度 平滑系数等运动参数 能 够独立运动或停止 轴 1 运动在 Jog 模式下 初始目标速度为 100pulse ms 动
  • 【iOS】获取当前 NSViewController 的 window 以及其所在 NSWindowController 的 window

    前言 场景 登录成功后 我们需要关闭当前登录页的 NSViewController 以及 NSWindowController 这时就需要获得当前的 window 进行关闭 解决 这里分别针对 NSView NSViewController
  • 【CV中的Attention机制】ShuffleAttention

    GiantPandaCV导语 这个系列已经好几个月没有更新了 开始继续更这个方向论文 19年 20年又出现了很多关于Attention的研究 本文SA Net shuffle attention for deep convolutional
  • python操作leveldb数据库

    1 leveldb简介 优点 1 leveldb是一个开源的持久化的键值数据库 2 具有很高的随机写 顺序读写性能 但是随机读性能一般 适合写多读少的场景 在一台4核Q6600的CPU机器上 每秒钟写数据超过40w 而随机读的性能每秒钟超过
  • vue小技巧:性能优化使用篇 => 路由/tab切换取消当前页面异步请求

    tab在前端是非常常见的一个组件 在vue里面 结合了双向绑定原理 更是将页面无感刷新提升到了极致 假设每个tab选项都需要请求一次接口 做一次异步操作 但是假如我们有一个手速超快的人 我摊牌了 就是我 他在一秒钟内能切换3次tab选项 也
  • redis zset利用并集求差集

    解决的痛点是缓存里的数据结构 zset 有序集合 它只能做并集 交集 不能做差集 我的需求是需要它做差集 总的内容缓存 差 用户已看的缓存 就能得到 用户没有看的 也就是接下来要给用户看的内容我的思路是利用并集操作完成 内容的缓存池 val
  • Unity中关于Destroy的API

    Unity中关于Destroy的API 常用的关于Destory的API 销毁游戏物体 Destroy gameObject 从游戏物体删除该脚本 Destroy this 从游戏物体删除刚体 Destroy rigidbody 加载物体5
  • 红帽官宣新任总裁兼 CEO!转型关键人物 Paul Cormier “退而不休”

    整理 郑丽媛 出品 CSDN ID CSDNnews 在今年 5 月的红帽峰会上 曾有传言称红帽总裁兼 CEO Paul Cormier 可能很快就会退休 事实证明 这一传言有所偏差 Paul Cormier 的确要退位 但并没有打算退休
  • 「干货分享」DevExpress常用控件——RichEditControl使用指南

    做WinForms的一般都知道 传统 NET界面有一个RichTextBox控件 这个是一个富文本控件 可以存储图片文字等内容 它有自己的文件格式RTF 在DevExpress控件组里面也有一个同等的控件 他的名字是RichEditCont
  • k8s-如何快速编写yaml文件(新手)

    k8s 如何快速编写yaml文件 新手 1 使用kubectl create 命令生成yaml文件 kubectl create depolyment web image nginx o yaml dty run depolyment 工作
  • 升级到Window11体验

    1 把禁掉的微软更新服务开启 2 去官网按照指导来 用微软账号 3 打开Window预览体验计划 比较慢 不要开代理不然会有错误 多转几圈多等一会儿 其次就是最近网络有问题虽然能够上网图标却显示未连接Internet 4 登录之前在官网弄的
  • 操作系统修炼秘籍(1):秘籍简介

    毋庸置疑 操作系统 Operating System OS 是一个非常大的概念 涉及到的内容非常非常多 在探讨它的时候 往往会将操作系统置于一个比较底层的角度去对待 这也使得多数人对OS是 闻之丧胆 对OS相关的资料或概念也是望而却步 这也
  • python编程基础-task5-面向对象的编程

    一 类的例子 class Song object class表示要创建类 Song是类的名称 def init self lyrics self lyrics lyrics 这里是设置了lyrics是的全局变量 后面的类里都可以使用这个参数