From that code, it seems like you are not familiar with how to declare and work with objects in Python. You are trying to change the address (VL53L1X.VL53L1X().change_address(new_address = 0x2B)) before you create an object to work with (tof = VL53L1X.VL53L1X(i2c_bus=0, i2c_address=0x2B)) and before you initialize the sensor and the I2C communication (tof.open()).
You might try this code:
import VL53L1X
import RPi.GPIO as GPIO
XSHUT = 16
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(XSHUT,GPIO.OUT)
GPIO.output(XSHUT,GPIO.LOW)
tof1 = VL53L1X.VL53L1X(i2c_bus=0, i2c_address=0x29)
tof1.open()
tof1.change_address(new_address = 0x2B)
GPIO.setup(XSHUT,GPIO.IN)
tof2 = VL53L1X.VL53L1X(i2c_bus=0, i2c_address=0x29)
tof2.open()
# now tof1 has address 0x2B and tof2 has address 0x29
tof1.start_ranging(1) # Start ranging, 1 = Short Range, 2 = Medium Range, 3 = Long Range
distance_in_mm = tof1.get_distance() # Grab the range in mm
tof1.stop_ranging() # Stop ranging
tof2.start_ranging(1) # Start ranging, 1 = Short Range, 2 = Medium Range, 3 = Long Range
distance_in_mm = tof2.get_distance() # Grab the range in mm
tof2.stop_ranging() # Stop ranging
-Nathan
