python - 如何在当前类方法中创建当前类的新实例?
问题描述
我有一堂课。在“完成”方法中,我想创建此类的一个新实例并将其添加到数组中。但相反,它只是将我当前的实例添加到数组中。如何使用此方法创建新实例?
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]))
其他示例显示了如何在类描述之外执行此操作,但我需要在内部执行此操作。
解决方案
解决了
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))
推荐阅读
- javascript - 如何在导航中使用全局变量...li href
- linux - 用户会话下方的 systemd 会话
- c# - 通过绑定 C# 属性(WPF 和 Caliburn.Micro)设置 TextBlock 内容
- c# - 如何通过在 C#(Windows 窗体应用程序)中使用 HttpClient 将数据发送到 PHP API 来将任何类型的文件上传到在线服务器?
- java - 如何将所有子片段类存储到父类的实例
- c++ - 我如何在函数 cpp 中返回字符串
- css - 具有 Angular 6 垂直 50-50 高度的 Flex 布局
- oracle - Oracle 查询创建多个会话
- git - 比 master 提前 10 次提交
- python - 如何在每 5 分钟之前运行 Python 代码 30 秒