是否可以使用另一个类的对象来创建一个类的对象,例如:
class Node(object):
def __init__(self, name):
self.name = name
class Edge(object):
def __init__(self, name, node1, node2):
self.name = name
self.node1 = node1 #only if it is an object of Node
self.node2 = node2 #only if it is an object of Node
因此,仅当node1和node2均为Node的对象时,才会创建Edge的对象。谢谢
您可以验证对象的类型,如果不是您想要的对象,则引发异常:
def __init__(self, name, node1, node2):
if not isinstance(node1, Node):
raise ValueError("Expected node1 to be a Node")
if not isinstance(node2, Node):
raise ValueError("Expected node2 to be a Node")
self.name = name
self.node1 = node1 #only if it is an object of Node
self.node2 = node2 #only if it is an object of Node
但是,进行这种类型检查在某种程度上与Python社区中流行的“我们都是成年人”的哲学背道而驰。您应该信任您的用户提供一个对象,该对象的接口可以满足其需要执行的任务,而不管它是否实际上是从Node继承的。您的用户应该理解,如果他们不遵守隐含的接口合同,那是他们自己的错,他们不应该对您哭泣。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句