If I understand the docs correctly, the variable_scope would create new variables using the specified names (scopes).
If you set reuse=True, TF would check, if a variable with this name was already created and return it instead of creating a new one (or raising an error?).
with tf.compat.v1.variable_scope("foo"):
    v = tf.compat.v1.get_variable("v", [1])
with tf.compat.v1.variable_scope("foo", reuse=True):
    v1 = tf.compat.v1.get_variable("v", [1])
assert v1 == v

In PyTorch you don’t define tensor creations in a graph with scopes etc. and can directly create the tensor and reuse it:
x = torch.randn(1)
y = x + 1
# reuse x
z = x + 2