笔记33 笨办法学python练习40之二:类和对象

类和模块差不多么?把这个练习继续往下做,看是否真有如此结果。刚刚对模块有了点感觉,加上这个类class也是要创建,但这个练习所创建的class MyStuff(object):,在mystuff之后还要跟着个object,让人又糊涂起来。为什么这后面还要加上一个object呢?而且,最后还有那个任意函数后面都有的标志“:”,那岂不是创建了一个函数?而模块好像还不能说它是函数,至少在标识符上,它不是函数。我们创建的模块不过一python文件而已,在刚刚的练习中,mystuff.py,不就称之为一个模块么?
这“类”class的形态,确如教材所言看起来有点复杂,我们抠教材的说法吧。教材归纳出模块与类有以下的联系和区别。
联系:
类class是对于模块的一个微型的模拟,那就是说,类是模仿模块来建构的,模块则是仿本的母本。所以,本练习所指的模块和类中,都含有共同的函数apple()。这大概就是两者的相同之处吧。
区别:
1区别则在于类要复杂一些,除了那个共同的apple()函数之外,在类中还有另外增加的两个函数-init-(self)和apple(self)。
2区别还在于类可以重复创建,模块好像做不到这一点。这点比上面的玄,暂且理解到此,看第3点。
3把类实例化之后,你会得到属于类之下的某个东西,这个也先理解到此,在代码的录入中加深理解吧。
在反复创建类名的过程中,知道了几点小技巧。那个MyStuff类的查询还没有找到方法。但在建立文件的过程中,知道两个小细节。一个细节是:那个有点麻烦的__init__(self)函数,init两旁的下横线是两个短线构成。另一个细节是:这个函数前的def,可不能直接放在下横线之前,得留下一个空格。还有个细节是关于文件的,好像python中的文件字母,大小写不加区分。我本来按照教材命名那个类名,但这个类名在python帮助文件中不认,你要改名又替换原来的mystuff文件了,只有在mystuff后面加个零。好像还是不行,也就只有用那个mystuff了。还是一个没有这个定义is not defined。
这个问题暂时解决不了,继续往下做。
很快就完成了ex40练习,仿照这个代码录下一首清代张奕光《回文茶诗》,把歌词改成诗,第一次不成功。检查后得知是小写字母不对,改为大写字母之后,回文诗的结果看到了。这个练习40花了几天时间,该继续前进了。
仿ex40.py歌词改诗成ex40e.py

在这里插入代码片`class Poem(object):def __init__(self, lyrics):self.lyrics = lyricsdef read_me_a_Poem(self):for line in self.lyrics:print(line)
#一首回文诗 正读
happy_bday = Poem(["香暗绕窗纱,半帘疏影遮","霜枝一挺干,玉树几开花","傍水笼烟薄,隙墙穿月斜","芳梅喜淡雅,永日伴清茶"])
#一首回文诗 倒读
bulls_on_parade = Poem(["   倒读亦成诗        ","茶清伴日永,雅淡喜梅芳","斜月穿墙隙,薄烟笼水傍","花开几树玉,干挺一枝霜","遮影疏帘半,纱窗绕暗香"])happy_bday.read_me_a_Poem()bulls_on_parade.read_me_a_Poem()

执行结果`第一次是这个结果,没有分开。
在这里插入代码片PS C:\Users\lenovo\1pythonw> python ex40e.py
香暗绕窗纱,半帘疏影遮
霜枝一挺干,玉树几开花
傍水笼烟薄,隙墙穿月斜
芳梅喜淡雅,永日伴清茶
茶清伴日永,雅淡喜梅芳
斜月穿墙隙,薄烟笼水傍
花开几树玉,干挺一枝霜
遮影疏帘半,纱窗绕暗香
又在文件代码中加了一行,称为以下执行结果:

在这里插入代码片PS C:\Users\lenovo\1pythonw> python ex40e.py
香暗绕窗纱,半帘疏影遮
霜枝一挺干,玉树几开花
傍水笼烟薄,隙墙穿月斜
芳梅喜淡雅,永日伴清茶倒读亦成诗
茶清伴日永,雅淡喜梅芳
斜月穿墙隙,薄烟笼水傍
花开几树玉,干挺一枝霜
遮影疏帘半,纱窗绕暗香
PS C:\Users\lenovo\1pythonw>

笔记33 笨办法学python练习40之二:类和对象相关推荐

  1. 笔记37 笨办法学python练习43面向对象OOP的游戏代码(二)代码的反复理解

    笔记37 笨办法学python练习43面向对象OOP的游戏代码(二)代码的反复理解 连续贴着这个练习43的代码折腾了整整两天,把那些英文文本翻译为中文文本,重新装进这个代码之中.本想一段一段的运行,发 ...

  2. 笔记36 笨办法学python练习43面向对象OOP的文字理解(一)

    笔记36 笨办法学python练习43面向对象OOP的文字理解(一) 先仔细看了本练习的文本,感到一个笔记写不下来这个复杂的练习过程,那就先把文字理解的部分先来完成,再用一篇笔记来完成代码的理解. 一 ...

  3. 笔记35 笨办法学python练习42对象、类、从属关系和部件关系

    笔记35 笨办法学python练习42对象.类.从属关系和部件关系 一.类.对象与从属关系 这个练习是一个有点哲学意味的练习,讨论对象和类的关系,也就是从属关系.对象不就是下属于某个类的子类,或者个体 ...

  4. 笨办法学 Python · 续 练习 33:解析器

    练习 33:解析器 原文:Exercise 33: Parsers 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 想象一下,你将获得一个巨大的数字列表,你必须将其输入到电子表格 ...

  5. 笨办法学python 粗略笔记(learn python the hard way)

    笨办法学python 粗略笔记(learn python the hard way) 标签(空格分隔): python # _*_ coding: utf_8 _*_ ''' ### ex1 prin ...

  6. 笨办法学python第五版_最新《笨办法学python》学习笔记

    <笨办法学 python >学习笔记( Python 3.6 ) 习题 19 ex19.py # -*- coding: utf-8 -*- # 定义 cheese_and_cracker ...

  7. 笨办法学Python 3 ex35学习笔记

    笨办法学Python 3 ex35学习笔记 from sys import exitdef gold_room():#print("This room is full of gold. Ho ...

  8. 笨办法学Python——学习笔记1

        最近想学gtk,但是gtk在window上编译和运行挺慢的,于是搜索了一下发现了pygtk.在前几天 把环境都配好了,现在想同时学gtk和pygtk,但Python没学过,找到了<笨办法 ...

  9. 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇

    编辑推荐: 适读人群 :本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员. "笨办法学"系列, ...

最新文章

  1. 【牛腩新闻发布系统】系统发布06
  2. C#中对于float,double,decimal的误解
  3. Python删除list里面的重复元素的俩种方法
  4. scala java maven项目_IntelliJ IDEA下Maven创建Scala项目的方法步骤
  5. Spring Cloud Alibaba基础教程版本升级:0.2.1-gt;0.2.2
  6. 登和平视显示无法连接服务器,提醒信息的推送方法和装置、平视显示器HUD及服务器...
  7. LockSupport实现线程通信
  8. 分析器错误信息: 未能加载类型命名空间.类...
  9. 浅谈OWASP TOP 10
  10. 修改Win7启动顺序和启动菜单名称
  11. 如何创建C语言的项目
  12. 机器学习视频课程(超清完整11周)分享给大家!
  13. 斐讯k2p官方固件如何登陆ssh后台
  14. python怎么计算相关系数_相关系数怎么算(python如何计算相关系数与协方差)
  15. 机器学习—确定系数R2
  16. 笔记本拆机后无法开机是什么原因
  17. 仿生象鼻机械臂的创新设计与应用研究
  18. 计算机网络中什么叫总衰耗_计算机网络中的四种延迟分别是什么?
  19. 转载:廖雪峰经典:史上最浅显易懂的Git教程!
  20. JS中String字符串

热门文章

  1. 大学生职业规划8000字_大一职业规划书8000字
  2. python 使用h5py 中遇到的问题
  3. 如何将两个excel表格合并
  4. iOS App添加扩展App Extension
  5. python ipados_iPadOS 的真实体验如何?
  6. 利用python查询电脑配置_干货|利用Python将地址转换为经纬度坐标
  7. 新手前端微信小程序img图片无法显示问题
  8. 测量计算方位角万能通用公式及VB、VBA源代码
  9. 使用certbot获取 Let‘s Encrypt CA证书
  10. 故事版(StoryBoard)的学习-----使用prepareForSegue方法