创建类和使用类

1、创建类

(1)、首先,附上一个简单的代码,创建一个test.py,如下所示:

class MusicInfo():"""创建一个音乐信息类"""def __init__(self,author,music,album):"""初始化属性author:作者,music:音乐名称,album:专辑名称"""self.author = author;self.music = music;self.album = album;def listen(self):print("you listen to the music:" + self.author + "'s" + self.music);def fromAlbum(self):print("the music:" + self.music + "is come from the album:" + self.album);musicInfo = MusicInfo('林子祥','每一个晚上','祥情廿载');
print(musicInfo.author + "的一首歌:" + musicInfo.music + ",很好听,来自于专辑:" + musicInfo.album);

代码解析(2)-(5):

(2)、在Python中,首字母大写的名称叫类,并用关键字class表明这是一个类,如上面第一行代码中,这个MusicInfo类定义中的括号是空的,我们要从空白创建这个类,其中后面一行为文档字符串,即对这个类的相关功能做个简单的描述。

(3)、__init__()方法,类中的函数称为方法;在前面学到的有关函数的一切都适用于方法,唯一重要的是调用方式跟函数有点区别。__init__()是一个特殊的方法,就如上面的代码,其中根据MusicInfo类创建一个实例对象的时候,Python都会自动运行它。

注:在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突,写错的话将会变成一个普通方法,在创建实例的时候就不会自动运行这个方法了。通常一开始写代码的时候稍微不注意就会报Python TypeError: object() takes no parameters错误,这个错误是因为把 __init__() 方法写成只有一个下划线的 _init_()方法了,后面实例化的时候又把属性传递过去了,导致出现问题。

(4)、方法__init__()定义成了包含四个形参,分别为self,author,music,album,其中self不能缺少,而且必须写在其他形参的开头。每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。 上面代码中我们创建MusicInfo的实例的时候,将会调用方法__init__(),self自动传递,我们只需要对后面的author,music,album形参传递值即可。

(5)、以self为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量,首先__init__()方法中self.author = author获取存储在形参author中的值,并将其存储到变量author中,然后该变量被关联到当前创建的实例。后面实例化MusicInfo类之后,得到一个实例musicInfo,就可以直接用实例.属性来取出属性值,即上面代码中的musicInfo.author取出作者名称。其中类中的其他方法带了个self参数,就可以用这个参数来得到实例化后的属性值。

运行后如下图所示:

2、根据类创建实例,就如上面的示例代码一样,创建了一个MusicInfo类的实例,具体代码为:

musicInfo = MusicInfo('林子祥','每一个晚上','祥情廿载');

(1)、访问属性,要访问实例的属性,可使用句点表示法。如上面示例代码一样,可以使用MusicInfo类实例后的对象musicInfo来访问各自的属性,比如musicInfo.author,访问实例的属性,然后打印出来,具体代码为:

print(musicInfo.author + "的一首歌:" + musicInfo.music + ",很好听,来自于专辑:" + musicInfo.album);

(2)、调用方法,创建类的实例后,可使用句点表示法来调用类中定义的任何方法,改下上面的示例代码,具体代码如下:

musicInfo = MusicInfo('林子祥','每一个晚上','祥情廿载');
musicInfo.listen();
musicInfo.fromAlbum();

运行后如下图所示:

(3)、创建多个实例,很简单,可以根据类创建任意数量的实例:

musicInfo_one = MusicInfo('林子祥','每一个晚上','祥情廿载');
musicInfo_two = MusicInfo('林子祥','敢爱敢做','花街70号');
print(musicInfo_one.author + "的一首歌:" + musicInfo_one.music + ",很好听,来自于专辑:" + musicInfo_one.album);
print(musicInfo_two.author + "的一首歌:" + musicInfo_two.music + ",很好听,来自于专辑:" + musicInfo_two.album);

运行后如下图所示:

以上内容仅供大家学习参考,谢谢!

Python学习笔记之类(一)相关推荐

  1. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  2. python学习笔记之编写readConfig读写配置文件

    python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客

  3. Python学习笔记(十一)

    Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...

  4. Python学习笔记一简介及安装配置

    Python学习笔记一 参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e54 ...

  5. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  6. Python学习笔记(二):标准流与重定向

    Python学习笔记(二):标准流与重定向 - SamWei - 博客园 Python学习笔记(二):标准流与重定向 Posted on 2012-02-19 22:36 SamWei 阅读(176) ...

  7. python 学习笔记 12 -- 写一个脚本获取城市天气信息

    近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...

  8. python基本语法语句-python学习笔记:基本语法

    原标题:python学习笔记:基本语法 缩进:必须使用4个空格来表示每级缩进,支持Tab字符 if语句,经常与else, elif(相当于else if) 配合使用. for语句,迭代器,依次处理迭代 ...

  9. 廖Python学习笔记一

    1. 廖Python学习笔记 大的分类 如函数 用二级标题,下面的用三级 如输入输出 1.1.1. 输入输出 1.1.1.1. 输出 用 print() 在括号里加上字符串,就可以向屏幕上输出指定的文 ...

  10. Python学习笔记(六)

    1. IO编程 1.1 文件读写 1.2 StringIO和BytesIO 1.3 操作文件和目录 1.4 序列化 2. 进程和线程 2.1 多进程 2.2 多线程 2.3 ThreadLocal 2 ...

最新文章

  1. 为x86 CPU自动调度神经网络
  2. loj10165. 「一本通 5.3 例 3」Windy 数
  3. 设计模式系列之十二:单例模式
  4. 贷款利润最大化——利用随机森林和逻辑回归
  5. 深入理解== 和 equals 的区别
  6. python判断某年是否为闰年的程序_Python 学习--从0到1(4. 题3)
  7. button按钮样式_各种好看的小按钮合集,纯css编写,最近在学习时遇到的,记录成为笔记...
  8. 解决php保存文件时文件名乱码问题
  9. 热更新_UnityXlua热更新
  10. Python 如何从字符串中提取 URL 链接
  11. 网络安全----身份认证
  12. 最大子列和问题(C语言)
  13. python xlsx转xls_Python 批量将xls文件转换为xlsx
  14. 读懂 指令、程序、微命令、微操作、微指令、微程序、微地址
  15. 备选统驭科目的使用与配置
  16. 治数如治水,数据治理和数据创新难在哪?
  17. SpringBoot初级学习笔记--稀客大大
  18. ios 横竖屏转换通知问题
  19. 桌面虚拟化VDesk 部署之一 导入VDesk服务器
  20. 亚洲首屈一指的Web3盛会TOKEN2049达到200名赞助商里程碑,公布新的重量级演讲嘉宾

热门文章

  1. php学习----运算符
  2. Qt: error lnk1158 无法运行rc.exe
  3. 物联网建设中通讯互联层的终极解决方案
  4. 0.8.11版本ffmpeg一天移植将近完成。
  5. 第七章:react-ui
  6. JS-数组-声明方式-读写添加删除-遍历
  7. 【HTML5】在canvas上绘制简单的2D图形 (+太极图)
  8. 读书笔记--《MicroPython入门指南》
  9. Dart 7-Day
  10. HTML Img Compression(压缩)