我有一个 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])