mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
add test
This commit is contained in:
parent
74a51cd053
commit
70bd8e48a8
56
port/linux/test/python/proxy/proxy1.py
Normal file
56
port/linux/test/python/proxy/proxy1.py
Normal file
@ -0,0 +1,56 @@
|
||||
class DataBinding:
|
||||
_inner_ = []
|
||||
|
||||
def __init__(self, data):
|
||||
_bindings_ = {}
|
||||
self._inner_.append(_bindings_)
|
||||
self._inner_.append(data)
|
||||
# self._inner_[0] = _bindings
|
||||
# self._inner_[1] = data
|
||||
|
||||
def __getattr__(self, name):
|
||||
data = self._inner_[1]
|
||||
return data[name]
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
_bindings_ = self._inner_[0]
|
||||
if name in _bindings_:
|
||||
bindings = _bindings_[name]
|
||||
for binding in bindings:
|
||||
element = binding['element']
|
||||
attr = binding['attr']
|
||||
_name = attr.replace("-", "_")
|
||||
funcName = "set_%s" % _name
|
||||
if hasattr(element, funcName):
|
||||
func = getattr(element, funcName)
|
||||
func(value)
|
||||
else:
|
||||
if hasattr(element, "obj") and element.obj:
|
||||
setattr(element.obj, _name, value)
|
||||
|
||||
def set_binding_value(self, element, attr, key):
|
||||
_bindings_ = self._inner_[0]
|
||||
if key not in _bindings_:
|
||||
_bindings_[key] = []
|
||||
|
||||
_bindings_[key].append({
|
||||
"element": element,
|
||||
"attr": attr
|
||||
})
|
||||
|
||||
|
||||
_data = {
|
||||
'a': 10,
|
||||
'b': 100
|
||||
}
|
||||
data = DataBinding(_data)
|
||||
|
||||
|
||||
class Binding:
|
||||
def set_value(self, value):
|
||||
print('set value =', value)
|
||||
|
||||
|
||||
binding = Binding()
|
||||
data.set_binding_value(binding, 'value', 'a')
|
||||
data.a = 20
|
Loading…
x
Reference in New Issue
Block a user