Python:Hello WorldレベルのSimpleDb


背景
ほとんどの動的言語はメンバーの動的解析をサポートしており、一般的にはメンバーが解析できないときにhookポイントを与えて面白い実装をカスタマイズします.のNet 4の後にダイナミックタイプのサポートが追加され、ダイナミックタイプにはこのメカニズムがあります.
アナログSimpleDb
 1 # coding = utf-8
 2 
 3 class SimpleDB:
 4     def __getattribute__(self, name):
 5         return Table(name)
 6 
 7 class Table:
 8     def __init__(self, table):
 9         self.__table = table
10 
11     def select(self, condition):
12         print('table: %s, condition: %s' % (self.__table, condition))
13 
14 test = SimpleDB()
15 test.Users.select({'name': '   ', 'age': 30})

注意:上の_getattribute__pythonが提供するhookです.