我是 Python 的新手,我正在学习类和函数,我想打印一个类的函数,但我得到的只是错误“类没有属性”
项目.py:
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)
class Gold(Item):
def __init__(self):
super().__init__(name = "Gold", desc = "Golden coin.", val = str(5))
主要文件:
from items import Item
print(Item.Gold.print_info)
错误是
"AttributeError: type object 'Item' has no attribute 'Gold'"
原文由 username 发布,翻译遵循 CC BY-SA 4.0 许可协议
Gold
不是Item
类的属性,不。它是一个子类,并且本身就是一个全局名称。您可以从items
模块导入它:您不能创建它的实例,因为
Item.__init__
方法使用了错误的名称:请注意,您创建的方法名称中包含 三个 下划线。如果你解决这个问题:
您可以创建
Gold()
类的实例:现在,如果您真的想在
Item
类上创建 _属性_,则必须在创建类 后 添加这些属性:您不需要为此创建子类。你 可以 在这里使用
enum
模块:这里
Gold
是Item
的一个属性: