【发布时间】:2010-08-13 11:35:02
【问题描述】:
假设一个C++类有几个构造函数,它们根据各自参数的个数、类型和顺序被重载,例如constructor(int x, int y)和constructor(float x, float y, float z),我认为这两个是重载方法,使用哪个取决于参数,对吧?那么在python中,我怎么能创建一个可以像这样工作的构造函数呢?我注意到python有def method(self, *args, **kwargs):,所以我可以这样使用:def __init__(self, *args),然后我检查*args的长度,如if len(args) == 2:,然后根据2参数构造函数,if len(args) == 3,然后使用 3 参数构造函数等。那么,这行得通吗?或者有没有更好的方法来用python做到这一点?或者我应该以其他方式思考可以利用 python 特性本身的优势吗?谢谢~
【问题讨论】:
标签: c++ python constructor overloading