is this fine for multiple constructors?
本问题已经有最佳答案,请猛点这里访问。
我一直在学习Python中OOP的一些基础知识,我发现它不允许在上面有多个构造函数。但是,我尝试了以下代码:
1 2 3 4 5 6 7 8 9 | class Whatever: def __init__(self,x=0,y=0): self.x=x self.y=y def Whatever(self,x,y): self.x=x self.y=y |
当我执行它时,它就像多个构造器一样工作:
1 2 3 4 5 6 | c=Whatever() print c.x,c.y 0,0 d=Whatever(1,2) print d.x,d.y 1,2 |
在python中构建多个构造函数可以吗?
第二个"构造函数"实际上从未被调用。调用
您添加的
1 2 3 4 5 6 7 8 9 10 11 | class Whatever(object): def __init__(self,x=0,y=0): self.x=x self.y=y @classmethod def Whatever(cls,x,y): return cls(x,y) d = Whatever.Whatever(1, 2) |
但这确实是不必要的,因为