首页 > 解决方案 > 如何在当前类方法中创建当前类的新实例?

问题描述

我有一堂课。在“完成”方法中,我想创建此类的一个新实例并将其添加到数组中。但相反,它只是将我当前的实例添加到数组中。如何使用此方法创建新实例?

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]))

其他示例显示了如何在类描述之外执行此操作,但我需要在内部执行此操作。

标签: pythonpython-3.x

解决方案


解决了

class Task:

    ArrPosition = 0

    def __init__(self, ArrPosition, content, state, arr):
        self.ArrPosition = ArrPosition
        self.content = content
        self.state = state
        self.arr = arr

    def Clone(self):
        return Task(self.ArrPosition, self.content, "NULL", self.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.Clone(self))
        if Answer == "False":
            self.state = "False"
            self.ArrPosition = 0
            SessionArray[CurrentPosition + 1].append(Task.Clone(self))

推荐阅读