我想知道如何初始化python中的對象,只有命名的參數,沒有別的,如果這是可能的。用關鍵字args初始化python對象
如果self.name =名稱和self.age =年齡的順序進行調換,錯誤是初始化的年齡。我把這些作爲關鍵字參數給了對象,那爲什麼還不夠呢?我看到一個類潛入python實例化了顯式命名關鍵字參數和它們的默認值(filename = None),所以我假設** kwargs也可以。謝謝
我想知道如何初始化python中的對象,只有命名的參數,沒有別的,如果這是可能的。用關鍵字args初始化python對象
如果self.name =名稱和self.age =年齡的順序進行調換,錯誤是初始化的年齡。我把這些作爲關鍵字參數給了對象,那爲什麼還不夠呢?我看到一個類潛入python實例化了顯式命名關鍵字參數和它們的默認值(filename = None),所以我假設** kwargs也可以。謝謝
你缺少的是kwargs需要顯式檢索名稱。以下是您的代碼的修改版本,以進行說明。請注意0和age
的初始化。
class Person(object):
def __init__(self, **kwargs):
self.name = kwargs.get('name')
self.age = kwargs.get('age')
# you'll probably want to check that all required
# members were initialized.
bob = Person(name='bob', age=45)
print bob
print bob.age
輸出:
<__main__.Person object at 0x1074e0bd0>
45
並使用* args可以使用self.first_arg = args [0] :) ty先生Rothman – codyc4321
kwargs
是一個字典。所以你應該這樣做:
class Person(object):
def __init__(self, **kwargs):
self.name = kwargs["name"]
self.age = kwargs["age"]
我不是那個低估了你的問題的人,但FYI會更好地粘貼文本代碼而不是截圖。 –