Python 属性错误:';非类型';对象没有属性';打印玩具&x27;
我有一个非常简单的python代码,其中我在构造函数中创建了一个对象数组,但是每当我尝试调用display函数来查看对象数组中的所有对象时,它都会返回这个非类型异常 名为Toy的类是实际的对象类,如下所示:Python 属性错误:';非类型';对象没有属性';打印玩具&x27;,python,arrays,class,Python,Arrays,Class,我有一个非常简单的python代码,其中我在构造函数中创建了一个对象数组,但是每当我尝试调用display函数来查看对象数组中的所有对象时,它都会返回这个非类型异常 名为Toy的类是实际的对象类,如下所示: class Toy: __name=None __cost=None def __init__(self,name,cost): self.__name=name self.__cost=cost def get_Name(self): return self.__name de
class Toy:
__name=None
__cost=None
def __init__(self,name,cost):
self.__name=name
self.__cost=cost
def get_Name(self):
return self.__name
def get_Cost(self):
return self.__cost
def print_Toy(self):
print(" Name of the toy: ",self.__name)
print(" Cost of the toy: ",self.__cost)
下面显示的类Toy_Bag包含对象数组,我正在构造函数中初始化它
from Toy import Toy
class Toy_Bag:
__toys=[None]
def __init__(self, no_of_toys):
self.__create_Toy_bag(no_of_toys)
def __create_Toy_bag(self, no_of_toys):
name,cost= None,0
for toy in range(0, no_of_toys):
print("\n Enter the name of the toy: ",end="")
name=input()
print("\n Enter the cost of the toy: ",end="")
cost=int(input())
toy=Toy(name,cost)
self.__toys.append(toy)
self.print_Toy_Bag()
def print_Toy_Bag(self):
for toy in self.__toys:
toy.print_Toy()
回溯(最近一次呼叫最后一次):
文件“Main.py”,第9行,在
玩具袋=玩具袋(3)
文件“C:\Users\SONY\Desktop\Python Scripts\Tools\Toy\u Bag.py”,第8行,在\uu init中__
自行制作玩具袋(无玩具)
文件“C:\Users\SONY\Desktop\Python Scripts\Tools\Toy\u Bag.py”,第19行,在创建玩具袋中
self.print_Toy_Bag()
文件“C:\Users\SONY\Desktop\Python Scripts\Tools\Toy\u Bag.py”,第23行,在print\u Toy\u Bag中
玩具
AttributeError:“非类型”对象没有“打印”属性
C:\Users\SONY\Desktop\Python Scripts\Tools>
非常感谢您的帮助。您正在使用
None
的一个元素初始化列表,如下所示:
class Toy_Bag:
__toys=[None]
然后在def\uu create\u Toy\u包中添加更多玩具(self,no\u of\u toys)
-将位于列表中的位置1到n。第一个保持None
如果打印\uu玩具
,则使用第一个无
调用玩具
-类的方法
换成
__toys=[]
所以
不再将第一个元素作为None
获取
您可能希望给出一个read-它可以帮助您调试自己的程序。如果您对如何“正确”命名内容感兴趣:这也是一本很好的读物(空格、私人成员和其中包含的许多其他内容)。您正在使用
无的一个元素初始化列表,如下所示:
class Toy_Bag:
__toys=[None]
然后在def\uu create\u Toy\u包中添加更多玩具(self,no\u of\u toys)
-将位于列表中的位置1到n。第一个保持None
如果打印\uu玩具
,则使用第一个无
调用玩具
-类的方法
换成
__toys=[]
所以
不再将第一个元素作为None
获取
您可能希望给出一个read-它可以帮助您调试自己的程序。如果您对如何“正确”命名内容感兴趣:这也是一个很好的读物(空格、私有成员和其中包含的许多其他内容)。可能重复的请复制粘贴错误:图像很难搜索,搜索时很难理解。对于“隐藏”的方法,您应该使用一个下划线可能重复请复制粘贴错误:图像很难搜索,搜索时也很难理解。对于“隐藏”的方法,您应该使用一个下划线。非常感谢,它很有效。实际上,我是Python新手,这就是我犯那个愚蠢错误的原因。@AbdulTayyeb阅读了我提供的链接。出于调试目的打印列表和变量有很大帮助;)非常感谢,它成功了。实际上,我是Python新手,这就是我犯那个愚蠢错误的原因。@AbdulTayyeb阅读了我提供的链接。出于调试目的打印列表和变量有很大帮助;)