python2和python3哪个好用,python 类和函数的优势
python中有无数的函数,是我们学习python的重要模块之一。作为另一个类python的模块,并不逊色于函数。两者平分春秋,具体选择看你朋友的使用情况。为了让大家知道这两种用法的区别,边肖特意找了一个例子,让大家在比较中选择更合适的用法。让我们看看这个例子。
假设我们需要写一个音乐播放器。在这个播放器中,我们有不同类型数据的信息,如歌曲、专辑、艺术家和播放列表。还有一些功能可以播放歌曲、专辑、艺术家或播放列表。我们在字典中存储每一种数据,不同类型的数据有不同的字段名。因为每个播放功能需要做不同的事情,所以我们有四个不同的功能:
一些歌曲={
标题 : 黄色潜水艇,
艺术家 3360 The _ Beatles,#指向包含该艺术家的词典
相册 3360黄色_潜水艇_相册,#包含此相册的字典链接
持续时间 :插入_时间_对象_此处,
file path : path/to/file/on/disk
}
#其他数据类型也有类似的结构。
#一些功能
defplay_song(宋):
#获取歌曲的路径
path=song[filepath]
#播放路径
调用_某_库_函数(路径)
defplay _相册(相册):
#查找专辑中的所有歌曲
#单独调用play_song
defplay_artist(艺术家):
#查找该艺术家的所有专辑
#单独调用play_album
defplay_playlist(播放列表):
#查找播放列表中的所有歌曲
#分别打电话打_宋这样写有什么不好?。我们有四个非常相似的函数,每个函数都与特定类型的数据相关。你必须用不同的东西来称呼它们,而不仅仅是玩玩,你还必须确保把正确的数据传递给它们。虽然四种不同的类型都可以“玩”,但在不知道它是什么的情况下,没有通用的方法来玩任何东西。那么在OOP下,如何实现:
classSong:
def_
_init__(self,title,artist,album,duration,filepath):
self.title=title
self.artist=artist
self.album=album
self.duration=duration
self.filepath=filepath
defplay(self):
path=self.filepath
call_some_library_function(path)
这样就定义了如何创建一个新的Song对象。该方法将字段值作为参数,并将它们作为对象的属性赋值。self是一个特殊参数(名称不保留;它可以被称为任何东西),它是对对象本身的引用。是一种从同一对象的其他方法内部访问属性和方法的方法。当我们从对象外部访问它们时(要使用play方法时将执行此操作),则可以使用在该范围内为对象指定的任何名称。
那么在之前:
#some_song是上面定义的歌play_song(some_song)
在使用class之后:
#self参数没有在这里传递;它会自动添加
some_song=Song("YellowSubmarine",
the_beatles,
yellow_submarine_album,
insert_time_object_here,
"path/to/file/on/disk"
)
some_song.play()
为什么这样更好?如果我们有一个对象,则不必知道它是什么就可以播放,因为现在播放任何内容的语法都是相同的:anyobject.play()即对象“知道”如何使用“自己的”数据进行处理的设计思想。无需从外部检查对象是否具有某些字段并决定如何处理这些内部字段,而是调用play对象提供的方法,并在每个类内部定义该类型的对象应如何实现此功能。
以上就是类跟函数的使用对比,有的小伙伴们肯定说小编偏向于类了。其实这只是一个应用场景的选择,大家也不用纠结于这一点,选择合适的使用才是最重要的。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。