有時候我們編寫了很多類华坦,并且已經將這些類當作數(shù)據結構來用间驮,但是我們需要重復編寫大量重復且樣式統(tǒng)一的init()函數(shù)驾凶,這時候我們可以將初始化過程集中到一個單獨的init()函數(shù)中尘奏,并將其定義在一個公共的基類中滩褥。
代碼演示:
class Structure:
_fields = []
def __init__(self, *args):
if len(args) != len(self._fields):
raise TypeError('Expected {} arguments'.format(len(self._fields)))
for name, value in zip(self._fields, args):
setattr(self, name, value)
if __name__ == "__main__":
class Stock(Structure):
_fields = ["name", "price", "shares"]
這樣我們實例化時相當容易構建。