def __init__(self, server_ip=globals.server_ip):
The argument is bound when the method is created and is not redefined later. To use what is the current value, use something like this:
def __init__(self, server_ip=None):
if server_ip is None:
server_ip = globals.server_ip
Btw, for the same reason, such a function will most likely not work as intended:
def foobar(foo=[]):
foo.append('bar')
return foo
:
def highspeed(some_builtin=some_builtin):