我可以在Python中使用两种构造函数方法吗?

我可以在Python中使用两种构造函数方法吗?,python,constructor,Python,Constructor,在Python中,我可以像在Java中那样执行以下操作吗 我想要两个构造函数,一个是默认构造函数,另一个是要求我发送字符串的构造函数 公共类人物 { 字符串名; 公共静态void main(字符串[]args) { 个人=新人(“约翰”); Person person2=新的Person(); } 公众人士() { name=“没有名字”; } 公众人物(字符串名称) { this.name=名称; } } 在Python中,您不会重载构造函数,而是为name参数指定一个默认值: 班级人员: 定

在Python中,我可以像在Java中那样执行以下操作吗

我想要两个构造函数,一个是默认构造函数,另一个是要求我发送字符串的构造函数

公共类人物
{
字符串名;
公共静态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()

这回答了你的问题吗?这回答了你的问题吗?