鉴于以下要求:
Foundation
和Data
类Data
是Foundation
的子类Foundation
的实例包含Data
的实例 Python
代码:
from __future__ import annotations
class Foundation():
data: Data
def __init__(self):
self.data = Data()
class Data(Foundation):
pass
Foundation()
但是,给定脚本以RecursionError
退出。为什么以及如何实施三个给定的要求?
答案 0 :(得分:1)
您可以使用public struct DtClip: Codable {
// MARK: Properties
public var video: String?
public var preview: String?
public var clip: String?
public var trailer: Trailer?
enum CodingKeys: String, CodingKey {
case video = "video"
case preview = "preview"
case clip = "clip"
case trailer = "trailer"
}
}
public struct Trailer: Codable {
// MARK: Properties
public var name: String?
public var id: Int?
enum CodingKeys: String, CodingKey {
case name, url
}
}
来避免调用一个对象,而该对象又调用了一个调用对象的对象...等等,直到递归错误为止。
super
现在您调用了from __future__ import annotations
class Foundation():
def __init__(self, data):
self.data = data
print(self.data)
class Data(Foundation):
def __init__(self):
super(Data, self).__init__(self)
Data()
,数据的Data
是super
,其中包含对其子项的引用。