threads and concurrency server firstyou will find that data attributes and properties cannot be accessed insteadyou have to use access functionsa traceback (most recent call last)file ""line in attributeerror'autoproxy[ ]object has no attribute 'xa getx( setx( with proxiesthe repr(function returns string representing the proxywhereas str(returns the output of _repr_ (on the referent for examplea print(aa( special methods and any method starting with an underscore (_are not accessible on proxies for exampleif you tried to invoke _iadd_ ()it doesn' worka + traceback (most recent call last)file ""line in typeerrorunsupported operand type(sfor +='autoproxy[ ]and 'inta _iadd_ ( traceback (most recent call last)file ""line in attributeerror'autoproxy[ ]object has no attribute ' _iadd_ _in more advanced applicationsit is possible to customize proxies to more carefully control access this is done by defining class that inherits from baseproxywhich is defined in multiprocessing managers the following code shows how you could make custom proxy to the class in the previous example that properly exposes the _iadd_ (method and which uses property to expose the attributefrom multiprocessing managers import baseproxy class aproxy(baseproxy) list of all methods exposed on the referent _exposed_ [' _iadd_ ','getx','setx'implement the public interface of the proxy def _iadd_ (self,value)self _callmethod(' _iadd_ ',(value,)return self @property def (self)return self _callmethod('getx',()@ setter def (self,value)self _callmethod('setx',(value,)class mymanager(basemanager)pass mymanager register(" "aproxytype=aproxyan instance proxy of class derived from baseproxy has the following methodsf lib fl ff