36

これはあまりにもオープンエンドの質問かもしれませんが、私はちょうど今 Python のメタクラスについて学んでおり、子クラスが親クラスから継承することとメタクラスがどのように違うのか理解できません。

class child(parent):

これはメタクラスと同じ目的を果たしませんか? メタクラスの目的を理解していないのかもしれません。

4

2 に答える 2

4
class AccessorType(type):
    def __init__(self, name, bases, d):
        type.__init__(self, name, bases, d)
        accessors = {}
        prefixs = ["get_", "set_", "del_"]

        for k in d.keys():
            v = getattr(self, k)
            for i in range(3):
                if k.startswith(prefixs[i]):
                    accessors.setdefault(k[4:], [None, None, None])[i] = v

        for name, (getter, setter, deler) in accessors.items():
            # create default behaviours for the property - if we leave
            # the getter as None we won't be able to getattr, etc..
            # [...] some code that implements the above comment
            setattr(self, name, property(getter, setter, deler, ""))
于 2013-10-19T08:26:06.207 に答える