【发布时间】:2019-10-01 14:36:13
【问题描述】:
我有课。在“完成”方法中,我想创建这个类的一个新实例并将其添加到数组中。但相反,它只是将我当前的实例添加到数组中。如何使用此方法创建新实例?
class Task:
ArrPosition = 0
def __init__(self, content, state, arr):
self.content = content
self.state = state
self.arr = arr
def Complete(self, Answer, CurrentPosition):
if Answer == "True":
self.state = "True"
self.ArrPosition += 1
if self.ArrPosition < 4:
SessionArray[CurrentPosition + self.arr[self.ArrPosition]].append(Task(self.content, "NULL", [0,2,6,10]))
if Answer == "False":
self.state = "True"
self.ArrPosition = 0
SessionArray[CurrentPosition + 1].append(Task(self.content, "NULL", [0,2,6,10]))
其他示例展示了如何在类描述之外执行此操作,但我需要在内部执行此操作。
【问题讨论】:
-
我不确定,因为有在类描述之外创建副本的情况,但我需要在里面这样做
-
在该类的方法中创建新实例并没有什么特别之处——您肯定会将
Task的新实例附加到您的数组中。不幸的是,你没有给我们足够的minimal reproducible example 来告诉我们出了什么问题。在您发布的代码中看起来可疑的一件事是ArrPosition- 您将其初始化为类属性,然后用实例属性覆盖它,因此它可能没有您在新实例中期望的值。 -
添加了新答案。它帮助了我:D
标签: python python-3.x