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-面向对象的编程 的相关文章

  • python中的编码检测库[重复]

    这个问题在这里已经有答案了 这在某种程度上与我的问题有关here https stackoverflow com questions 2305997 unicodedecodeerror problem with mechanize 我处理
  • 如何配置散景图以具有响应宽度和固定高度

    我使用通过组件功能嵌入的散景 实际上我使用 plot sizing mode scale width 它根据宽度进行缩放并保持纵横比 但我想要一个响应宽度但固定或最大高度 这怎么可能实现呢 有stretch both and scale b
  • 如何将经度和纬度转换为国家或城市?

    我需要将经度和纬度坐标转换为国家或城市 python中有这样的例子吗 提前致谢 我使用谷歌的API from urllib2 import urlopen import json def getplace lat lon url http
  • 同情因子简单关系

    我在 sympy 中有一个简单的因式分解问题 无法解决 我在 sympy 处理相当复杂的积分方面取得了巨大成功 但我对一些简单的事情感到困惑 如何得到 phi 2 2 phi phi 0 phi 0 2 8 因式分解 phi phi 0 2
  • Python:如何重构循环导入

    我有件事可以帮你做engine setState
  • Python/Flask:应用程序在关闭后正在运行

    我正在开发一个简单的 Flask Web 应用程序 我使用 Eclipse Pydev 当我开发该应用程序时 由于代码更改 我必须经常重新启动该应用程序 这就是问题所在 当我运行该应用程序时 我可以在本地主机上看到该框架 这很好 但是当我想
  • 指定 Parquet 属性 pyspark

    如何在 PySpark 中指定 Parquet 块大小和页面大小 我到处搜索 但找不到任何有关函数调用或导入库的文档 根据火花用户档案 https mail archives apache org mod mbox spark user 2
  • 将带有两层分隔符的字符串转换为字典 - python

    给定一个字符串 s x t1 ny t2 nz t3 我想转换成字典 sdic x 1 y 2 z 3 我通过这样做让它工作 sdic dict tuple j split t for j in i for i in s split n F
  • 散景中的时间序列流

    我想在散景中绘制实时时间序列 我只想在每次更新时绘制新的数据点 我怎样才能做到这一点 散景网站上有一个动画情节的示例 但它每次都需要重新绘制整个图片 另外 我正在寻找一个简单的示例 我可以在其中逐点绘制时间序列的实时绘图 散景效果0 11
  • 如何在 Spyder IDE 中安装 Selenium 包

    我刚刚在工作中安装了 Spyder IDE 仅 Spyder 不是整个 Anaconda 并且希望使用 FireFox 自动化我的工作 我的问题是 如何安装 Selenium 软件包 I figured it out Here is ins
  • 如何在 Tkinter 的 Button 小部件中创建多个标签?

    我想知道如何在 Tkinter 中创建具有多个标签的按钮小部件 如下图所示 带有子标签的按钮 https i stack imgur com jOZRw jpg正如您所看到的 在某些按钮中有一个子标签 例如按钮 X 有另一个小标签 A 我试
  • 从 subprocess.Popen 获取整个输出

    我通过调用 subprocess Popen 得到了一个有点奇怪的结果 我怀疑这与我对 Python 的陌生有很大关系 args cscript USERPROFILE tools jslint js USERPROFILE tools j
  • tweepy 流到 sqlite 数据库 - 语法错误[重复]

    这个问题在这里已经有答案了 可能的重复 tweepy 流到 sqlite 数据库 语法无效 https stackoverflow com questions 9434205 tweepy stream to sqlite database
  • python 的 fcntl.flock 函数是否提供文件访问的线程级锁定?

    Python 的 fcnt 模块提供了一种名为 flock 1 的方法来证明文件锁定 其描述如下 对文件执行锁定操作op 描述符 fd 文件对象提供 fileno 方法被接受为 出色地 请参阅 Unix 手册集群 2 了解详情 在某些系统上
  • 如何在 Pandas 数据框中用 NaN 替换一系列值?

    我有一个巨大的数据框 我应该如何用 NaN 替换一系列值 200 100 数据框 您可以使用pd DataFrame mask https pandas pydata org pandas docs stable generated pan
  • 如何在 Python 中解析损坏的 XML?

    我无法影响的服务器发送的 XML 非常损坏 具体来说 Unicode WHITE STAR 将被编码为 UTF 8 E2 98 86 然后使用 Latin 1 转换为 HTML 实体表 我得到的是 acirc 98 86 9 个字节 位于声
  • 升级后 pip 损坏

    我做了 pip install U easyinstall 然后 pip install U pip 来升级我的 pip 但是 当我尝试使用 pip 时 我现在收到此错误 root d8fb98fc3a66 which pip usr lo
  • 在没有numpy的情况下在python中分配变量NaN

    大多数语言都有一个 NaN 常量 您可以使用它为变量分配值 NaN python 可以在不使用 numpy 的情况下做到这一点吗 是的 使用math nan https docs python org 3 library math html
  • 如何获取所有Python标准库模块的列表?

    我想要类似的东西sys builtin module names标准库除外 其他不起作用的事情 sys modules 只显示已经加载的模块 sys prefix 包含非标准库模块并且似乎无法在 virtualenv 内工作的路径 我想要这
  • 将笔记本生成的 HTML 片段转换为 LaTeX 和 PDF

    在我的笔记本里有时会有 from IPython display import display HTML display HTML h3 The s is important h3 question of the day 但当我后来将笔记本

随机推荐

  • 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是的全局变量 后面的类里都可以使用这个参数