笨方法”学Python3,习题 40:模块、类和对象
# 引言:Python 是一种“面向对象编程语言”,Python中有一种叫类的结构,通过它可以用一种特殊的方式构造软件。使用类,可以加强程序的一致性,使用起来更加整洁
1、什么是类 ?
2、如何运用类 ?
一、模块和字典差不多字典
字典里面的键(key)对应着值(value),取值时要用到键模块
模块是包含函数和变量的 Python 文件,可以导入这个文件,然后可以使用“.”操作符访问模块中的函数和变量创建模块,含函数导入模块ex40,调用里面的函数apple创建模块,含函数与变量导入模块ex40,调用函数apple,打印变量tangerine比较模块和字典
字典:一个“键 = 值”的容器,通过“字典名[键]”来获取值
模块:导入模块后,用 "模块.函数/变量" 来调用函数或者变量
二、类和模块差不多
Python 中还有一种代码结构来实现模块这种类似的目的,那就是类
通过类,可以把一组函数和数据放到一个容器中,用“.”运算符访问它们
弄懂上图还需要理解什么是对象(object)
三、对象和import差不多
类和模块差不多,那应该也有类似导入(import)的概念,类的这个概念叫做“实例化”或“创建”,将类实例化(创建类)的方法就是像调用函数一样地调用一个类
当将一个类实例化(创建类)后,得到的就叫做对象(object),实例化的方法就是像调用函数一样调用一个类,所有从类里面实例化出来的对象都具备这个类中提供的方法
1、从MyStuff类中实例化一个对象thing,thing能做什么由类决定
2、对象thing可以调用类MyStuff里面的函数,thing就调用了apple函数
四、获取某样东西里包含的东西
五、第一个类的例子__init__函数
两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问;在python中我们可以使用__init__()方法来传递参数,比如赋值给对象属性等;__init__函数的第一个参数必须为self,后续参数为自己定义
所写的代码:
class Song(object): # 定义类Song
def __init__(self,lyrics): # 定义类的参数,lyrics
self.lyrics = lyrics # 指实例的属性self.lyrics
def sing_me_a_song(self): # 定义函数sing_me_a_song
for line in self.lyrics:
print(line)
# 实例化,对象为happy_bday
happy_bday = Song(["Happy birthday to you",
"I don't want to get sued",
"So I'll stop right there"])
# 实例化,对象为bulls_on_parade
bulls_on_parade = Song(["They rally around the family",
"With pockets full of shells"])
# 对象happy_bday调用类里面的函数sing_me_a_song
happy_bday.sing_me_a_song()
# 对象bulls_on_parade调用类里面的函数sing_me_a_song
bulls_on_parade.sing_me_a_song()
---------------------------------------------------------------------------------------------------
应该看到的结果:
PS D:\代码> & D:/软件/python/python.exe d:/代码/ex40.py
Happy birthday to you
I don't want to get sued
So I'll stop right there
They rally around the family
With pockets full of shells
总结:
1、类是Python中的一种结构,在类中可以定义函数与变量,在类外可以实例化一个对象,对象可以调用类中的函数与变量
2、__init__是类的私有函数,类外无法使用,其目的是传递参数,第一个参数必须为self
^ v ^,知乎此系列文章内容均会在微信公众号中同步更新,公众号:小民有个小旮旯