Если вы имеете в виду концепцию аксессоров, тогда простая цель - скрыть базовое хранилище от произвольных манипуляций. Самый экстремальный механизм для этого -
function Foo(someValue) {
this.getValue = function() { return someValue; }
return this;
}
var myFoo = new Foo(5);
/* We can read someValue through getValue(), but there is no mechanism
* to modify it -- hurrah, we have achieved encapsulation!
*/
myFoo.getValue();
Если вы имеете в виду фактическую функцию GET-приемника / сеттера, например. defineGetter
/ defineSetter
или { get Foo() { /* code */ } }
, то стоит отметить, что в большинстве современных двигателей последующее использование этих свойств будет намного медленнее, чем в противном случае. например. сравнить производительность
var a = { getValue: function(){ return 5; }; }
for (var i = 0; i < 100000; i++)
a.getValue();
vs.
var a = { get value(){ return 5; }; }
for (var i = 0; i < 100000; i++)
a.value;
Вы должны обратиться к newlist и модулю, где он определен следующим образом:
from script2 import *
foofunction(arg)
print(script2.newlist)