Python 的多个构造函数

2024-02-03

我有一个 A 类,可以通过两种不同的方式生成。

  • a = A(xml 文件路径)
  • a = A(列表,列表)

第一个方法以文件路径作为输入,从 XML 文件解析以获取 listA 和 listB。第二种方法给出了两个列表。

我可以想到两种方法来实现多个构造函数。你怎么认为?对于这种情况,Python 人员通常使用什么方法?

检查类型

class A():
    def __init__(self, arg1, arg2 = None):
        if isinstance(arg1, str): 
            ...
        elif isinstance(arg1, list):
            ...

a = A("abc")
b = A([1,2,3],[4,5,6])

制作不同的建造者

class A2():
    def __init__(self):
        pass
    def genFromPath(self, path):
        ...
    def genFromList(self, list1, list2):
        ...
a = A2()
a.genFromPath("abc")
b = A2()
b.genFromList([1,2,3],[4,5,6])

让构造函数获取两个列表。编写一个工厂类方法来解析 XML 并返回对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 的多个构造函数 的相关文章

随机推荐