在Python中的类中创建对象

费利克斯·布拉瑟(Felix Brasseur)

是否可以使用另一个类的对象来创建一个类的对象,例如:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python中创建的类的对象问题

来自分类Dev

在类中创建对象

来自分类Dev

在类中创建对象数组

来自分类Dev

在类定义中创建对象

来自分类Dev

在python中创建类?

来自分类Dev

在python中创建用户定义类的对象集

来自分类Dev

如何在Python中创建包含类实例的对象?

来自分类Dev

在python中创建用户定义类的对象集

来自分类Dev

使用类型在python中动态创建类-为什么创建的类对象不相同?

来自分类Dev

是否可以在 Python OOP 中跳过单独的对象创建并在调用类函数时创建对象?

来自分类Dev

在python中打印类对象

来自分类Dev

仅在Manager类中创建对象

来自分类Dev

在单独的文件中从类创建对象

来自分类Dev

在Java中创建Vector类对象

来自分类Dev

在我的类C ++中创建对象

来自分类Dev

程序卡死在Java中创建类对象

来自分类Dev

使用数组在类中创建对象

来自分类Dev

在类中创建新对象的问题

来自分类Dev

在类中创建数组对象,ruby

来自分类Dev

无法从我创建的类中返回对象

来自分类Dev

在C ++中的类内创建对象

来自分类Dev

在 C++ 中从类创建对象

来自分类Dev

从存储在变量中的类创建对象

来自分类Dev

在javascript中创建类以创建对象与在Java中创建类和对象之间的区别

来自分类Dev

迭代在python中创建对象

来自分类Dev

从类中的包中的单独文件中创建对象

来自分类Dev

在类中创建类的对象,但不使用名称

来自分类Dev

如何识别在 Helper 类中创建的类对象

来自分类Dev

如何在接口类中创建超类对象?