前言

好了,接着昨天的故事继续。

上文说到我和小姐姐相互自我介绍了

今天我们继续讲我与小姐姐的故事:

self的作用

class Car:

def drive(self):

print('我正在开车')

def turnover(self):

print('翻车了')

def introduce(self):

print('%s的年龄是:%d,特点是:%s'%(self.name,self.age,self.features))

#创建一个对象

xiao_jie_jie=Car()

xiao_jie_jie.drive()#调用xiao_jie_jie指向的对象的方法

xiao_jie_jie.turnover()

#添加属性,属性就是变量

xiao_jie_jie.name = '王梦瑶'

xiao_jie_jie.age = 20

xiao_jie_jie.features = '北方有佳人 遗世而独立 一顾倾人城 再顾倾人国'

xiao_jie_jie.introduce()

myself = Car()

myself.name = '王大伟'

myself.age = 18

myself.features = '玉树临风 英俊潇洒 风流倜傥 貌似潘安 形貌昳丽 器宇轩昂 一表人才 雄姿英发 风度翩翩'

myself.introduce()

以上是昨天结束时的代码,其实我们昨天已经提到了self这个参数

注意到,在定义类Car中的三个方法(drive turnover introduce)时,方法里的参数都是self

注意:self是创建类中的方法时必填的参数,通过哪个对象调用的方法,则self就是哪个对象

例如:

xiao_jie_jie=Car()

用类Car()创造了一个对象xiao_jie_jie

在之后的小姐姐自我介绍中:

xiao_jie_jie.introduce()

小姐姐这个对象调用了introduce()方法来自我介绍(类中定义的函数叫做方法),则

这里的self系统会调用xiao_jie_jie的name,age,feartures属性作为输入,由print某种格式输出作为自我介绍内容。

则自我介绍内容(输出)为:

self也可以写为任意一个变量(非系统关键字),但是大家潜规则(默认)使用self

为了大家相互看代码,交接工作更顺利吧~

面向对象优势初体现——小姐姐要秀厨艺

自我介绍结束,我说要请小姐姐吃饭,然后看电影,然后去唱歌,然后。。。(请自行脑补)

o(︶︿︶)o 唉,这不是常见的谈恋爱套路么

不想落入俗套?

小姐姐给了我一个惊喜

小姐姐说要给我做饭!!!

我脑中的:

不过转念一想,小姐姐煮泡面至少也是她的心意啊,说不定下次就是爱心便当了!

于是她请我去她家吃饭。。。

买来泡面——__init__()方法、泡面状态——__str__()方法

小姐姐在附近诺大的超市轻车熟路买到了泡面(语文题 Q: 请揣摩作者文中"“偌大“和“轻车熟路”二词的含义?A:”偌大“体现了超市很大,和“轻车熟路”买到泡面形成对比,暗含小姐姐经常过来买泡面吃,呼应上文小姐姐选择煮泡面请我吃,更体现了小姐姐长期不健康的饮食生活。)

买完泡面,我们来到小姐姐家(这里就她一个人住)

她开始下面给我吃。

class Cook_instant_noodles:

def __init__(self):

self.cookedString = '生的'

self.cookedLevel = 0

首先定义一个类叫做Cook_instant_noodles(中文含义:煮泡面)

class Cook_instant_noodles:

def __init__(self):

self.cookedState = '生的'

self.cookedLevel = 0

def __str__(self):

return '泡面状态:%s(%d)'%(self.cookedState,self.cookedLevel)

注意:这里新定义了两个方法(在类中使用def定义),名字分别是__init__()和__str__()方法。

__init__()方法:称为构造方法。在类创建对象时,自动执行,进行初始化操作。

__str__()方法:打印对象相关内容时候需要用到,我们可以简单理解为输出作用。

在__init__()方法中,定义了泡面初试状态是生的,泡面煮熟状态时0,即还没开始煮泡面。

在__str__()方法中定义泡面状态的返回。

def cook(self,cooked_time):

if cooked_time >= 0 and cooked_time < 3:

self.cookedState = '还没熟'

elif cooked_time >= 3 and cooked_time < 5:

self.cookedState = '半生不熟'

elif cooked_time >= 5 and cooked_time < 8:

self.cookedState = '煮熟了'

elif cooked_time >= 8:

self.cookedState = '煮糊了'

在煮泡面类里定义一个方法cook()表示煮泡面时泡面的状态。

注意:为了简化,这里状态只考虑煮的时间,不考虑火力大小等其他因素。

所以,在方法中传入参数cooked_time

接下来,创建了一个泡面对象

instant_noodles = Cook_instant_noodles()

注意:这个煮泡面对象命名为instant_noodles,是用Cook_instant_noodles()类创建的对象,所以这个对象可以调用该类中的方法cook()

我们可以通过:

print(instant_noodles)

来观察泡面的状态

#开始煮泡面

instant_noodles.cook(1)

创建出的instant_noodles这个对象要调用类中的方法cook(),将参数 1 传入cooked_time,代表煮了一分钟(我们约定的单位)

class Cook_instant_noodles:

def __init__(self):

self.cookedState = '生的'

self.cookedLevel = 0

def __str__(self):

return '泡面状态:%s(%d)'%(self.cookedState,self.cookedLevel)

def cook(self,cooked_time):

if cooked_time >= 0 and cooked_time < 3:

self.cookedState = '还没熟'

elif cooked_time >= 3 and cooked_time < 5:

self.cookedState = '半生不熟'

elif cooked_time >= 5 and cooked_time < 8:

self.cookedState = '煮熟了'

elif cooked_time >= 8:

self.cookedState = '煮糊了'

#创建了一个泡面对象

instant_noodles = Cook_instant_noodles()

print(instant_noodles)

#开始煮泡面

instant_noodles.cook(1)

运行一下完整程序

结果如下:

说明煮了一分钟还没熟(这不是废话么,掀桌)

接下来小姐姐就给我煮面啦~

小姐姐告诉我一个事实:她以前都是用开水泡面的,没煮过泡面(害怕火)

所以她不知道煮多久才熟。。。

我想:我的天!这也行?

我说:那你试试吧,反正你买了好几包(她买了这么多泡面估计准备吃一周,好像被我发现了她的意图,害羞的点了点头

于是,小姐姐开始尝试

instant_noodles.cook(20)

第一次,她煮了20分钟(她果然没有生活经验),程序运行结果显示:

这。。不科学啊

于是我决定修改代码。。

小姐姐最后煮面煮的怎么样了?想了解我与小姐姐的更多故事,请持续关注。

作者:王大伟 Python爱好者社区唯一小编,请勿转载,谢谢。

出处:Python面向对象编程从零开始(3)-- 小姐姐请客上篇

配套视频教程:Python3爬虫三大案例实战分享:猫眼电影、今日头条街拍美图、淘宝美食 Python3爬虫三大案例实战分享

公众号:Python爱好者社区(微信ID:python_shequ),关注,查看更多连载内容。

加小编个人微信:tsdatajob ,跟作者互动,一起探讨。

python面向对象编程从零开始_Python面向对象编程从零开始(3)—— 小姐姐请客上篇相关推荐

  1. python面向对象编程从零开始_Python面向对象编程从零开始(4)—— 小姐姐请客下篇

    前言 前文传送门: Python面向对象编程从零开始(2)-- 与对象相互了解:Python面向对象编程从零开始(2)-- 与对象相互了解 Python面向对象编程从零开始(3)-- 小姐姐请客上篇: ...

  2. python面向对象编程从零开始_Python面向对象编程从零开始,从没对象到有对象

    原标题:Python面向对象编程从零开始,从没对象到有对象 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智 ...

  3. python面向对象编程中_Python面向对象编程中关于类和方法

    类和实例 python是一个面向对象的语言,而面向对象最重要的概念就是类和实例, 记得刚学习的时候不太理解这些概念,直到老师说了一句"物以类聚". 没错就是类, 归类 物以类聚 类 ...

  4. python面向对象生动讲解_Python面向对象语法精讲

    本专题的内容结构: 第一部分主要是:面向对象基础 第二部分主要是:面向对象进阶 第一部分的结构: unit1:面向对象编程模式: (1),面向对象编程思想 (2),面向对象的三个特征 (3),Pyth ...

  5. python面向对象的概念_Python面向对象概念和三要素

    语言分类 1.面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 2.面向过程 做一个事情,排出步骤,第一步干什么,第二步干什么,如果出现情况A怎么处理,如果出现情况B做什么处理. 问题规模小,可 ...

  6. python modbus类封装_Python | 面向对象程序设计来了!

    当当当,技术小E又来了! 经过前几次的基础贴的培训 相信很多同学对python的基础知识 已经有了一个简单的认识 那么下面我们来讲一讲 python面向对象程序设计. 我们在写程序的时候一般有两种方式 ...

  7. python核心编程电子书_Python核心编程 PDF 超清第3版

    给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于Python编程.Python核心编程方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小22.4 MB,卫斯理编写,目前豆瓣 ...

  8. python网络编程自学_Python网络编程学习_Day11

    一.协程 1.理论知识 协程,又称伪线程,是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈. ...

  9. python语言 表白程序_python编写的GUI表白小程序

    # Tkinter是Python的标准GUI(图形用户界面)库 ,Python使用Tkinter可以快速的创建GUI应用程序 from tkinter import * from tkinter im ...

最新文章

  1. G1 垃圾收集器原理详解
  2. Oracle错误代码:ORA-28002导致密码消失
  3. input中的disabled 和 readonly的区别
  4. 排序算法--(冒泡排序,插入排序,选择排序,归并排序,快速排序,桶排序,计数排序,基数排序)
  5. Android-Activity中的onNewIntent()方法调用简析
  6. 和平精英连接服务器未响应,和平精英触控失灵怎么回事 操作触屏有时候没反应介绍...
  7. 跟我一起学docker(15)--监控日志和日志管理
  8. 计算机组成白中英答案,计算机组成原理白中英答案
  9. 那些消失了的黑客杂志 | 深度
  10. vc2012 异常捕获并处理
  11. 厦门大学计算机系录取分数线贵州,厦门大学2016年在贵州各专业录取分数线
  12. 2021-07-30-DJ-005 Django模型的数据批量加载
  13. E4A第一期-E4A的简单用法
  14. 《PHASEN:A Phase and Harmonics-Aware Speech Enhancement Network》Pytorch代码学习
  15. java multi tenancy_MybatisPlus 多租户架构(Multi-tenancy)实现详解
  16. 流行音乐即兴伴奏——常用和弦
  17. HTML5三屏合一的架构设计
  18. (转)用遗传算法优化BP神经网络的Matlab编程实例
  19. 高考录取查询系统被植入挖矿代码;日本百亿亿次超算已完成 CPU 开发
  20. 开发多了犯傻系列之---数据库imp命令导入“忽略了剩余的行”

热门文章

  1. 无法显示 隐藏文件 无法启动 杀毒软件 svohost.exe CheckedValue Dword
  2. IE11无法显示此页的问题
  3. Ubuntu常用快捷键-快速打开关闭终端以及更多常用指令
  4. 宝藏又小众的武术 搏击cc0高清摄影图片素材网站分享
  5. 汤姆大叔深入理解JavaScript系列
  6. 公交IC卡对乘客不利的15个方面
  7. ucl2.xml实例分析
  8. 基础算法知识点------单调队列
  9. visio 2016版本的下载与安装配置教程
  10. 期末个人总结博客----(谢永青)