为什么这会返回两个值?简单 python 初学者

Why is this returning two values? Easy python beginner

有人可以解释一下为什么我在下面 class 中的输入方法是 returning 两个值吗?我正在学习 python 并且正在创建一个简单的游戏来掌握 OOP 和 classes。无论如何,我需要使用 enter 方法 return 从代码片段列表中随机选择一个代码片段。但我不断得到两个片段而不是一个。有人可以解释为什么吗?

    from sys import exit
    from random import randint




  class Island(object):

    def enter(self):
     pass



  class Loser(Island):
    snippets = ["Welcome to loser Island",
            "Can't win them all", 
            "There's always next time"]             
   def enter(self): 
      print Loser.snippets[randint(0,len(self.snippets)-1)]



  loser_test = Loser()
  loser_test.enter()

为什么不直接使用 random.choice

def enter(self): 
    print random.choice(self.snippets)

我要猜一猜然后说是因为你有这样的东西

class Island:
    def __init__(self):
        print self.enter()

但这确实是在黑暗中刺伤...因为您没有提供足够的信息来实际回答您的问题。 ...(真的,我想这个问题应该在 OP 提供足够的数据之前关闭)

你可以通过 运行

来测试
loser_test = Loser()

如果您看到的打印件几乎肯定是您的问题

通常,您将创建一个 class,然后描述该 class 实例的行为和内容。 class 的实例是一个类型为 class 的对象。例如,john = Person('John', 'Doe') 将创建一个 Person 对象,将 'John''Doe' 发送到对象的 __init__ 方法(构造函数)。

以下通过使用单词 self 来表示 class 的实例。 self 不是关键字(如 in);它只是一个对象的描述用来指代对象本身的词。您可以使用任何单词(例如 for xyz in [1,2,3] 中的 xyz),但首选 self

>>> import random
>>> class L(object):
...     def __init__(self):
...             self.snippets = ["Welcome", "Can't", "There's"]
...     def enter(self):
...             print (random.choice(self.snippets))
...
>>> l = L()
>>> l.enter()
There's
>>> l.enter()
There's
>>> l.enter()
Welcome
>>> l.enter()
Can't
>>>