我在 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__不是构造函数而是初始化器
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
添加回答
举报
0/150
提交
取消