Custom train_step() in TensorFlow Keras Model not Printing Values Sequentially


class model_sub(tf.keras.Model):
  def __init__(self,modell):
    super().__init__()
    self.model=modell
    self.i=1

  def compile(self,opt,lloss,**kwargs):
    super().compile(**kwargs)
    self.lloss=lloss
    self.opt=opt

  def train_step(self,data):

     
  
    print(self.i)
    self.i+=1






    loss=0.007
    return {"loss":loss}


my_model.fit(train_dataset,epochs=1)

If train_step is called by fit() for every batch of data, why is not the value being printed from 1 to 4 (my no of batches is 4 ).Also what is the purpose of value in the return statement is it just for printing purposes?