[英]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]
xyz
中for 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.