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__不是構造函數而是初始化器

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
添加回答
舉報