为什么这会返回两个值?简单 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
>>>
有人可以解释一下为什么我在下面 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
>>>