Due to the lack of reference to any documentation at an intermediate level, this is my pragmatic conceptual model of tensor flow variables.
Further, from https://www.tensorflow.org/programmers_guide/graphs#visualizing_your_graph it seems, at least, to imply an answer to your question.
"Executing v = tf.Variable (0) adds to the graph a tf.Operation, which will save the written tensor value that is saved between calls to tf.Session.run. The tf.Variable object wraps this operation and can be used as a tensor that will read "the current value of the stored value. The tf.Variable object also has methods such as assign and assign_add that create tf.Operation objects that update the stored value when executed."
And this is from https://www.tensorflow.org/programmers_guide/variables
"Internally, tf.Variable maintains a constant tensor. Specific operating systems allow you to read and modify the values ββof this tensor."
And this is from http://www.goldsborough.me/tensorflow/ml/ai/python/2017/06/28/20-21-45-a_sweeping_tour_of_tensorflow/
"are memory buffers containing tensors."
Note that the lines between the nodes of the graph MUST be tensors. tf.constant (...) returns the tensor (class instance). However, tf.Variable (...) does not return a Tensor instance, but an instance of the Variable class
x = tf.Variable(...) print(type(x)) # <class 'tensorflow.python.ops.variables.Variable'> y = tf.constant(...) print(type(y)) # <class 'tensorflow.python.framework.ops.Tensor'>
To use the tf variable in an operation (whose arguments must be tensors), its value must first be "converted" to a tensor, and the "read" operation returns the "hidden" tensor that the variable represents. I believe the value is returned as tf.constant (which is a tensor).
Pay attention to the capital V in tf.Variable (...), and the small c in tf.constant (..). Tf.Variable (...) returns an instance of the tf.Variable class, so tf.Variable (...) creates an instance of the class, and read () is (visualizing a) a method in this class that returns value. When a value is assigned to a variable, it modifies this βhiddenβ tensor.
On the other hand, at least conceptually, tf.constant (...) is a factory function that returns an instance of the Tensor class.
It would be nice to have a link to some intermediate level documentation about this.