python类与对象详解(3):简化初始化过程

2016-04-21  本文已影响654人  KillerManA

有时候我们编写了很多类,并且已经将这些类当作数据结构来用,但是我们需要重复编写大量重复且样式统一的init()函数,这时候我们可以将初始化过程集中到一个单独的init()函数中,并将其定义在一个公共的基类中。
代码演示:

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"]

这样我们实例化时相当容易构建。

上一篇 下一篇

猜你喜欢

热点阅读