【发布时间】:2021-07-22 16:37:57
【问题描述】:
class C():
def A(self):
mm=[]
kk=[]
x="Y"
while x=="Y":
x=input("do you have any stuff?[Y/N]: ")
if x=="N":
break
mm.append(input("enter the name of the thing: "))
kk.append(input("Enter the value of the thing: "))
def printing(self):
print("="*100)
print("stuff")
for i in range(0,len(self.mm)):
print(self.mm[i]," "*20,self.kk[i])
shr = C()
shr.A()
shr.printing()
代码给出一个属性错误, “C”对象没有属性“mm” 有谁知道如何解决这个错误?
【问题讨论】:
-
...您从不在您的班级中分配属性
self.mm..为什么您期望会有这样的属性?如果您希望该实例有一个属性,您必须在某处分配给self.mm... -
@ZalakBhalani 我同意,它很丑,但它不是无效的并且要清楚,不是这个错误的来源
-
请注意,通常最好的做法是单独获取用户输入,然后在实例化时将其传入类。
-
@juanpa.arrivillaga 我同意你的观点,但这不是一个好的做法。我并不是说这是这个错误的根源。
标签: python python-3.x function object oop