code: def bind(self):
          
          if not self.is_linked:
              if not self.is_compiled:
                  self.compile()
              self.link()
          super(self.__class__, self).bind()
docs: Activate this Shader, making it the currently-bound program.
  
          Any Mesh.draw() calls after bind() will have their data processed by this Shader.  To unbind, call Shader.unbind().
  
          Example::
  
             shader.bind()
             mesh.draw()
             shader.unbind()
  
          .. note:: Shader.bind() and Shader.unbind() can be also be called implicitly by using the 'with' statement.
  
          Example of with statement with Shader::
              with shader:
                  mesh.draw()