0

我有我正在玩的这段代码,但不知道如何调用它?

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)吗?

4

2 回答 2

1

首先,代码中有一个错字。那-应该是=。

无论如何,调用它的方式是

Slide("xxxx.jpg","xxxx.wav").show()
于 2013-06-18T03:19:53.200 回答
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()

这使您可以灵活地创建没有图片和声音的幻灯片(如果您想要没有任何音乐的空白幻灯片怎么办?)。

编辑:要么你编辑了你的问题,要么我最初完全误读了它。如果我看错了,那么 Antimony 是正确的,你会用他提出的或类似的东西来调用该代码:

s = Slide("foo.jpg", "bar.wav")
s.show()

但是,如果这是您学习编程/python 时正在玩的东西,我认为您应该考虑为您的类实例提供这些参数的最佳位置在哪里。至少在你的情况下,我不确定它是构造函数。

于 2013-06-18T03:22:12.227 回答