我可以在Python中使用两种构造函数方法吗?
在Python中,我可以像在Java中那样执行以下操作吗 我想要两个构造函数,一个是默认构造函数,另一个是要求我发送字符串的构造函数我可以在Python中使用两种构造函数方法吗?,python,constructor,Python,Constructor,在Python中,我可以像在Java中那样执行以下操作吗 我想要两个构造函数,一个是默认构造函数,另一个是要求我发送字符串的构造函数 公共类人物 { 字符串名; 公共静态void main(字符串[]args) { 个人=新人(“约翰”); Person person2=新的Person(); } 公众人士() { name=“没有名字”; } 公众人物(字符串名称) { this.name=名称; } } 在Python中,您不会重载构造函数,而是为name参数指定一个默认值: 班级人员: 定
公共类人物
{
字符串名;
公共静态void main(字符串[]args)
{
个人=新人(“约翰”);
Person person2=新的Person();
}
公众人士()
{
name=“没有名字”;
}
公众人物(字符串名称)
{
this.name=名称;
}
}
在Python中,您不会重载构造函数,而是为name
参数指定一个默认值:
班级人员:
定义初始化(self,name=“No name”):
self.name=名称
在Python中,您不会重载构造函数,而是为name
参数指定一个默认值:
班级人员:
定义初始化(self,name=“No name”):
self.name=名称
在Python中,不能有多个构造函数。唯一的方法是使用这些元素:
- 关键字参数
- 具有默认值的可选参数
在Python中,不能有多个构造函数。唯一的方法是使用这些元素:
- 关键字参数
- 具有默认值的可选参数
如果没有额外的库帮助,就无法伪造重载函数。Pythonic等价物是定义一个
\uuuuu init\uuuu
方法和一个使用\uuuu init\uuu
的附加类方法。比如说,
class Person:
def __init__(self, name):
self.name = name
@classmethod
def nameless(cls, self):
return cls("No name")
person = Person("Jhon")
person2 = Person.nameless()
虽然在这种情况下,提供默认参数是过分的,可以使用
class Person:
def __init__(self, name="No name"):
self.name = name
person = Person("Jhon")
person2 = Person()
如果没有额外的库帮助,就无法伪造重载函数。Pythonic等价物是定义一个
\uuuuu init\uuuu
方法和一个使用\uuuu init\uuu
的附加类方法。比如说,
class Person:
def __init__(self, name):
self.name = name
@classmethod
def nameless(cls, self):
return cls("No name")
person = Person("Jhon")
person2 = Person.nameless()
虽然在这种情况下,提供默认参数是过分的,可以使用
class Person:
def __init__(self, name="No name"):
self.name = name
person = Person("Jhon")
person2 = Person()
这回答了你的问题吗?这回答了你的问题吗?