从技术上讲,你可以做任何一个。问题归结为您何时想为类实例提供该信息,在它创建时(在这种情况下,您将它放在构造函数中:)__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 时正在玩的东西,我认为您应该考虑为您的类实例提供这些参数的最佳位置在哪里。至少在你的情况下,我不确定它是构造函数。