编写一个创建具有指定名称的 Tamagotchi 对象的类Tamagotchi
。您应该决定Tamagotchi
对象应该具有哪些属性,以便支持下面详细说明的所需行为。Tamagotchi
对象 t 有三种方法:
teach
,其中可以有可变数量的字符串输入。这将教 tamagotchi 这些单词。符号也将起作用。如果您尝试多次教 tamagotchi 相同的单词,它将忽略以后的尝试。
play
将使 tamagotchi 返回它已被教导的单词的字符串列表(按顺序)。
kill
将杀死 tamagotchi。一旦一个 tamagotchi 在天堂,它就不能被教导,当你试图玩它时也不会响应。相反,所有进一步的方法调用都将返回字符串"<name> is pining for the fjords"
,其中<name>
是 tamagotchi 的名称。
这是我的代码:
cl Tamagotchi():
def __init__(self, name):
self.name = name
def teach(self, words):
new_words = []
[new_words.append(x) for x in words if x not in new_words]
("".join(new_words))
def play(self):
return 'meow meow says ' + Tamogotchi.teach(words)
测试代码:
>>> meow_meow = Tamagotchi("meow meow")
>>> meow_meow.teach("meow")
>>> meow_meow.play()
'meow meow says meow'
>>> meow_meow.teach("purr")
>>> meow_meow.teach("meow")
>>> meow_meow.play()
'meow meow says meow and purr'
>>> meow_meow.kill()
'meow_meow killed'
>>> meow_meow.teach("o")
'meow meow is pining for the fjords'
>>> meow_meow.play()
'meow meow is pining for the fjords'
我的代码有什么问题?我没有得到我想要的 meow_meow.play()
在类方法中传递的self
变量指的是Tamagotchi
的实例。为了避免告诉你如何做功课,考虑__init__
函数,你将名称分配给实例,所以
>>> meow_meow = Tamagotchi("meow meow")
>>> meow_meow.name
'meow meow'
现在教一个Tamagotchi
单词意味着它应该说这个新单词,前提是它还不存在。您在teach
方法中有正确的想法,但是您没有将其分配给实例,因此在以后的调用中会丢失。同样,对于您的播放方法,words
没有在方法中定义,因此它将失败。考虑以格式跟踪它们
编辑:由于 OP 说这太模糊了。这个例子将使用鹦鹉。我的鹦鹉虽然很笨,但他只重复我说的最后一件事,所以让我们在代码中实现我的鹦鹉
cl Parrot():
def __init__(self, name):
# self is ped implicitly for new instances of the cl
# it refers to the instance itself
self.name = name
self.words = ""
def hear(self, words):
# My parrot overhears me saying a sentence
# 'self', the first argument ped, refers to the instance of my parrot
# I overwrite the instance value of 'words' (self.words) by igning the
# new words that were ped as the instance words value
self.words = words
def speak(self):
# I return whatever the instance 'words' variable contains
return self.words
现在让我们来谈谈我和我的鸟的谈话。我在这里命名格拉迪斯。
>>> my_parrot = Parrot("Gladys")
>>> my_parrot.speak()
""
>>> my_parrot.hear("Gladys, what is your name?")
>>> my_parrot.speak()
"Gladys, what is your name?"
>>> my_parrot.hear("No, Gladys, what is your name?")
>>> my_parrot.speak()
"No, Gladys, what is your name?"
>>> my_parrot.hear("No, you are Gladys.")
>>> my_parrot.speak()
"No, you are Gladys."
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(37条)