为了账号安全,请及时绑定邮箱和手机立即绑定

Python 构造函数重载

Python 构造函数重载

不负相思意 2022-12-20 09:42:21
我在 C++ 中遇到了类构造函数的概念。但是我还没有找到一种使用 2 种或更多不同方法在 Python 中初始化类的方法。谁能告诉我该怎么做?
查看完整描述

2 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

python中不需要多个构造函数,如果有多个这样的case可以用下面的方式初始化


class A:

    def __init__(self, arg_1, arg_2=None):

        self.arg_1 = arg_1

        self.arg_2 = arg_2

所以当你需要初始化一个类A的对象时,你可以使用


a1 = A(2)

a2 = A(2, 4)

虽然严格来说__init__不是构造函数而是初始化器


查看完整回答
反对 回复 2022-12-20
?
HUH函数

TA贡献1836条经验 获得超4个赞

@Ratan Rithwik 解决方案是正确的,但只有 2 个案例


如果您想拥有尽可能多的案例,您可以使用 **kwarg

one example with @thebjorn answer


编辑:混合“标准”参数(具有默认值)和 kwargs


class Player:

    def __init__(self, name='John', **kwargs):

        self.name = name

        self.last_name = kwargs.get('last_name')



p = Player(last_name='Doe')

print (p.name) # John

print (p.last_name) #Doe


p1 = Player('foo')

print (p1.name) # foo

print (p1.last_name) #None


查看完整回答
反对 回复 2022-12-20
  • 2 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信