[英]define class with variable number of inputs in python
如何用两个可能的输入定义类构造函数:
class MSMeshFace(object):
def __init__(self, A=None, B=None, C=None)
def __init__(self, A=None, B=None, C=None, D=None)
因此,显然这是行不通的,但这就是我希望其表现的方式。 如果有人输入A,B,C,则从这三个变量构造MSMeshFace;否则,如果有人输入A,B,C,D,则从所有四个变量构造MSMeshFace。 这样做的正确方法是什么,以便当我调用它时,它看起来像这样:
newFace = MSMeshFace(A, B, C)
要么
newFace = MSMeshFace(A,B,C,D)
并且它们都可以正常工作,但是第一个创建“三角形”面,第二个创建“四边形”。 如果可能的话,我不想做类似newFace = MSMeshFace()。Quad(A,B,C,D)的操作。
还是我应该做类似的事情:
class MSMeshFace(object):
def __init__(self, a= None, b= None, c= None, d= None):
self.a = a
self.b = b
self.c = c
self.d = d
if self.d == None:
triangleFace = MSMeshFace(self.a, self.b, self.c)
return triangleFace
else:
quadFace = MSMeshFace(self.a, self.b, self.c, self.d)
return quadFace
def addData(self, data):
self.data = data
这是构造该类的有效方法吗?
class MSMeshFace(object):
def __init__(self, A, B, C, D=None):
if D is None:
# build mesh using (A,B,C)
else:
# build mesh using (A,B,C,D)
triFace = MSMeshFace(A,B,C)
quadFace = MSMeshFace(A,B,C,D)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.