Tamagotchi:tamagotchi类的面向对象编程

编写一个创建具有指定名称的 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()

2

在类方法中传递的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."

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(909)
孩子学的编程是什么:词典学是什么意思 (meaning of lexicographic)
上一篇
C语言实训总结及心得:Goertzel算法的 C语言实现
下一篇

相关推荐

  • go和come的区别:去吧!来吧!改变你的未来

    示例示例go和come的区别:Go是一个动词,表示“去”的意思,指的是从一个地方到另一个地方的运动。Come是一个动词,表示“来”的意思,指的是从另一个地方到当前地方的运动。…

    2023-05-25 16:09:00
    0 11 51
  • contigo运动水杯Contigo运动水杯!

    contigo运动水杯是一款由美国Contigo公司推出的轻便、便携式的水杯,它采用高品质的材料制作而成,具有耐用、可靠、安全的特点。此外,它还有一个可以调节的密封盖,可以保证水杯中的液体不会漏出来,这样就可以保证液体的安全性。此外,它还配有一个可以拆卸的把手,可以让您更加方便地携带它。…

    2023-05-05 11:02:55
    0 38 47
  • good catch什么意思:好抓住!让你的梦想变成现实

    示例示例Good catch是一种表扬语,用来表扬某人发现了一个有价值的信息或问题。它可以用来表扬别人的观察力、思考能力和分析能力。例如:…

    2023-08-19 13:56:14
    0 20 34
  • cs go 国际服挑战国际赛场,体验全新竞技乐趣

    CS GO国际服是一种多人在线游戏,由Valve Corporation开发,可以在Steam平台上进行游戏。它是一款基于Counter-Strike系列游戏的竞技游戏,玩家可以在两个不同的队伍中进行游戏,一个是攻击者(Terrorists),另一个是防守者(Counter-Terrorists)。玩家可以通过购买武器,装备,技能,以及其他道具来提高游戏能力。…

    2023-06-12 16:29:37
    0 15 46
  • cs go怎么进国服:如何进入CS GO中国服务器?

    要进入CS GO国服,需要在Steam客户端中添加以下代码:-game csgo -console -ip 203.208.60.0 ++sv_lan +map de_st2…

    2023-07-31 06:31:11
    0 48 90
  • chigo空调遥控器操作老式:如何使用Chigo空调遥控器操作老式空调

    Chigo空调遥控器操作老式,主要有以下几步:首先准备好Chigo空调遥控器,打开电源,将遥控器与空调连接;…

    2023-08-25 08:15:44
    0 65 29
  • sh.122.gov cn预约考试一步一步指导

    sh.122.gov.cn预约考试是指在上海市122服务网站(sh.122.gov.cn)上预约参加各类考试的服务。步骤如下:…

    2023-06-30 08:47:19
    0 65 36
  • fgo等级cost表:如何利用FGO等级Cost表提高你的游戏体验?

    FGO等级cost表是一个用来描述FGO(Fate/Grand Order)游戏中玩家升级所需要消耗的费用的表格。表中包含了每一个等级所需要的费用数量,以及玩家在升级时所需要支付的费用总和。…

    2023-09-28 03:36:07
    0 42 14

发表评论

登录 后才能评论

评论列表(37条)