Object.defineProperty()和Proxy有什么区别? 在我看来,它们在本质上确实是一样的,仅对实现反应性,验证和默认设置有用。
因此,class Return_Thread_Value(object):
def __init__(self,target = None,args = (),**kwargs):
self._que = queue.Queue()
self._t = Thread(target = lambda q,arg1,kwargs1: q.put(target(*arg1,**kwargs1)),args=(self._que,args,kwargs),)
self._t.start()
def Return_Value(self):
self._t.join()
return self._que.get()
Thread_1 = Return_Thread_Value(target = Walking_Inputs,args = (
WINDOW,CLOCK,Hero,FRAME,INTERactING,TOP_SCREEN,POSITION_DATA,BACKGROUND,FOREGROUND_OPAQUE,FOREGROUND_TRANSLUCENT,INPUT,INPUT_SHIFT,PROMPT_SHIFT,Input,ENTERED))
INTERactING,ENTERED = Thread_1.Return_Value()
Thread_2 = Return_Thread_Value(target = Key_Inputs,ENTERED,CAPITAL,Input))
ENTERED,Input = Thread_2.Return_Value()
似乎仅提供Proxy可用功能的一部分。
代理保留原点不变时,defineProperty
更改原始对象。代理允许一次甚至提前设置所有内容(例如拦截直到尚未创建的成员)。代理还处理函数调用,并具有足够的功能来覆盖构造函数和删除运算符。
如果是正确的话,也许我们不再需要defineProperty
。