我无法理解为什么我创建的类对象无法从列表中返回随机选择的项目。我知道问题在于我无法理解如何传递值的基本知识。我仍然是学习 Python 的新手,这只是我的第二个应用程序。我的最终目标是创建一个Weapons()
名为的类对象,该对象armed
具有名为weapon
. 我希望能够创建“armed.weapon”,这是一种从列表中随机选择的武器,然后分配给另一个类对象中的变量,即“hero_weapon = armed.weapon”。这是我编写的示例,试图创建“armed.weapon”,然后打印该值。我的逻辑有什么缺陷?为什么我会遇到“NameError: global name 'weapon' is not defined”?
from random import randint
class Weapons(object):
def __init__(self, weapon = ''):
self.weapon = weapon
self.weapons_list = [
'Flame Blade',
'Ice Flail',
'Lightning Mace'
]
def choices(self):
self.weapon = self.weapons_list[randint(0, 2)]
self.weapon = weapon
return weapon
armed = Weapons()
armed.choices()
print armed.weapon