属性包括"/>
python类的属性包括
Gold不是Item类的属性,不是。它是一个子类,本身就是一个全局名称。您可以从items模块导入它:>>> from items import Gold
>>> Gold
您无法创建它的实例,因为对Item.__init__方法使用了错误的名称:
^{pr2}$
请注意,您创建的方法的名称中有三个下划线。如果你解决了这个问题:class Item():
def __init__(self, name, desc, val):
# ^ ^ 2 underscores on both sides
self.name = name
self.desc = desc
self.val = val
您可以创建Gold()类的实例:>>> Gold()
>>> gold = Gold()
>>> print(gold.print_info())
Gold
==========
Golden coin.
Value: 5
现在,如果您真的想在Item类上创建属性,那么必须在创建类之后添加这些属性:class Item():
def __init___(self, name, desc, val):
self.name = name
self.desc = desc
self.val = val
def print_info(self):
return '{}\n==========\n{}\n\nValue: {}'.format(self.name, self.desc, self.val)
Item.gold = Item('Gold', 'Golden coin.', 5)
你不需要为此创建子类。但是,您可以在这里使用^{} module:from enum import Enum
class Item(Enum):
Gold = 'Golden coin.', 5
Silver = 'Silver coin.', 1
def __init__(self, desc, val):
self.desc = desc
self.val = val
def print_info(self):
return '{}\n==========\n{}\n\nValue: {}'.format(self.name, self.desc, self.val)
这里Gold是Item的属性:>>> Item
>>> Item.Gold
>>> print(Item.Gold.print_info())
Gold
==========
Golden coin.
Value: 5
>>> Item.Silver
更多推荐
python类的属性包括
发布评论