メタクラスを使用した例としてJavaScriptのprototypeをPythonで実装して見た例があります。
このコードではPrototypeClassの__getattr__を定義して(1)、Prototypeのインスタンス.prototypeが呼ばれた時にclass属性のprototypeを見にいくようになっています。

(if name == 'prototype':のところ)

そこで気になったのですが(2)のgetattrの呼び出しにはreturnがついていません。それなのになぜ、cls.prototypeが返るのでしょうか?
return getattr(self.__class__, name)としなくて良いのは何故なのでしょうか?

#!/usr/bin/env python
## -*- coding: utf-8 -*-

class PrototypeStore(dict):
    """ x.prototype.XXXの値を保存するためのクラス """
    def __setattr__(self, name, value):
        self[name] = value

    def __getattr__(self, name):
        return self[name]

class PrototypeMeta(type):
    """ Prototypeメタクラス(クラス生成時に呼ばれる) """
    def __new__(metacls, cls_name, bases, attrs):
        cls = type.__new__(metacls, cls_name, bases, attrs)
        cls.prototype = PrototypeStore()
        return cls

class Prototype(object):
    __metaclass__ = PrototypeMeta

    def __getattr__(self, name): #(1)
        if name == 'prototype':
            getattr(self.__class__, name) #(2)
        else:
            try:
                getattr(object, name)
            except AttributeError:
                return self.__class__.prototype[name]

class TestClass(Prototype):
    def __init__(self):
        pass

コード例:
Pythonのメタプログラミング (メタクラス) を理解したい人のための短いコード片と禅問答 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記