簡體   English   中英

為什么返回兩個值? 簡單的python初學者

[英]Why is this returning two values? Easy python beginner

有人可以解釋一下為什么我在以下類中的enter方法返回兩個值嗎? 我正在學習python,並正在創建一個簡單的游戲來掌握OOP和類。 無論如何,我需要使用enter方法從摘要列表中返回隨機摘要。 但是我不斷收到兩個摘要,而不是一個。 有人可以解釋為什么嗎?

    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)

通常,您將創建一個類,然后描述該類實例的行為和內容。 類的實例是類型為該類的對象。 例如, john = Person('John', 'Doe')將創建一個Person對象,並將'John''Doe'發送到該對象的__init__方法(構造函數)。

下面通過使用單詞self來堅持一個類的實例。 self不是關鍵字(如in ); 它只是對象的描述用來指代對象本身的單詞。 您可以使用任何單詞(例如for xyz in [1,2,3] xyzfor xyz in [1,2,3] ),但是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
>>>

我會猜測一下,因為你有這樣的事情

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

但這確實是黑暗中的一個刺...因為您沒有提供足夠的信息來實際回答您的問題。 ...(真的,我想這個問題應該在OP提供足夠的數據之前結束)

您可以通過運行來測試

loser_test = Loser()

如果您看到的照片幾乎肯定是您的問題,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM