Python:Hello WorldレベルのSimpleDb
2528 ワード
背景
ほとんどの動的言語はメンバーの動的解析をサポートしており、一般的にはメンバーが解析できないときにhookポイントを与えて面白い実装をカスタマイズします.のNet 4の後にダイナミックタイプのサポートが追加され、ダイナミックタイプにはこのメカニズムがあります.
アナログSimpleDb
注意:上の_getattribute__pythonが提供するhookです.
ほとんどの動的言語はメンバーの動的解析をサポートしており、一般的にはメンバーが解析できないときに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です.