我有这个我正在玩的代码,但不知道如何调用它?
class Slide:
def __init__(self, pictureFile, soundFile):
self.picture - makePicture(pictureFile)
self.sound = makeSound(soundFile)
def show(self):
show (self.picture)
blockingPlay(self.sound)
我不能只做pictureFile =“xxxx.jpg”,soundFile =“xxxx.wav”然后去show(pictureFile,soundFile)?
答案 0 :(得分:1)
首先,代码中有一个拼写错误。那 - 应该是=。
无论如何,调用它的方式是
Slide("xxxx.jpg","xxxx.wav").show()
答案 1 :(得分:1)
从技术上讲,你可以做到。问题归结为当你想要为类实例提供该信息时,在它创建时(在这种情况下你将它放在构造函数中:__init__
)或者当你想要显示它时(在这种情况下,你将它们作为参数传递给show方法)。
在不知道幻灯片项目的细节的情况下,将它放在构造函数中似乎是最有意义的(在两个选项中)。
但那些不是你唯一的选择。你既不能做也不做:
class Slide:
picture = None
sound = None
def __init__(self):
# Nothing here
pass
def setPicture(self, pic):
self.picture = pic
def setSound(self, snd):
self.sound = snd
def show(self):
show (self.picture)
blockingPlay(self.sound)
# "Main"
s = Slide()
s.setPicture("foo.jpg")
s.setSound("bar.wav")
s.show()
这使您可以灵活地创建没有图片和声音的幻灯片(如果您想要没有任何音乐的空白幻灯片,该怎么办?)。
编辑:你编辑了你的问题,或者我最初误读了它。如果我误读了它,那么锑就是正确的,你可以用他提出的或类似的东西来调用那段代码:s = Slide("foo.jpg", "bar.wav")
s.show()
但是如果这是你正在学习编程/ python的东西,我认为你应该考虑用这些参数提供类实例的最佳位置。至少在你的情况下,我不确定它是构造函数。