__getattr__
Python には、カスタム値を返すことを可能にする魔法のメソッドがあります。
class A(object):
def __getattr__(self, name):
return name
B = A()
print B.foo # 'foo'
A.foo
ただし、 A はインスタンスではないため、呼び出しても同様の効果はありません。
metaclasses を使用すると、Google App Engine はインスタンス化時に次のエラーを発生させます。
File "/base/python27_runtime/python27_lib/versions/1/google/appengine/ext/db/__init__.py", line 913, in __init__
key_name.__class__.__name__)
BadKeyError: Name must be string type, not tuple
参照されている質問が正しく実装されていると仮定すると、魔法のクラス__getattr__
を実装できる他の方法は何ですか?