On click, doubleclick and mouse moving
Avoid wildcard imports

You should use import tkinter as tk instead of from tkinter import Tk, Canvas. This is a PEP8 recommendation where you can find the reason of this. Of course, in this case, you have to prefix your widgets with tk. For instance: my_button = tk.Button(...)

Remove useless comments

To be honest, most of your comments (docstrings, to be exact) can be removed. Let us take an example:

def double_click(self, event):
    '''  set flag when there is a double click '''
    self.double_click_flag = True


The docstring is just noisy. It does not bring any additional information when I read self.double_click_flag = True. That comment just repeats what the instruction already tells me. Avoid repeating yourself, even through comments.

The same is true when it comes to inline comments. Example:

self.aw.bind('&lt;Button-1&gt;', self.clicked)  # bind left mouse click


Use the main guard

Sometimes we want to run some code only if the program was used by itself and not when it was imported from another module, for this reason it is good to use if __name__ == "__main__":

def main():
    root = tk.Tk()
    window = tk.Canvas(root, width=400, height=400, bg='grey')
    mouse = MouseControl(window)
    window.place(x=0, y=0)
    window.mainloop()


if __name__ == "__main__":
    main()


Simplify the handlers

I find your handlers having unnecessary code. Simply take advantage of the button events themselves and get rid of all those unnecessary flags which are rather cumbersome in case you want to add more code in the future (because they play the role of global variables, which thing we do not like in programming). 

Taking in consideration what has been said so far, here is your code cleaned:

import tkinter as tk


class MouseControl:        
    def __init__(self, canvas):            
        self.canvas = canvas
        self.canvas.bind('&lt;Button-1&gt;', self.clicked)  
        self.canvas.bind('&lt;Double-1&gt;', self.double_click)  
        self.canvas.bind('&lt;ButtonRelease-1&gt;', self.button_released)  
        self.canvas.bind('&lt;B1-Motion&gt;', self.moved)  

    def clicked(self, event):      
        print('single mouse click event at ({}, {})'.format(event.x, event.y))

    def double_click(self, event):
        print('double mouse click event')

    def button_released(self, event):        
        print('button released')

    def moved(self, event):        
        print('mouse position is at ({:03}. {:03})'.format(event.x, event.y), end='\r')    

def main():
    root = tk.Tk()
    window = tk.Canvas(root, width=400, height=400, bg='grey')
    mouse = MouseControl(window)
    window.place(x=0, y=0)
    window.mainloop()


if __name__ == "__main__":
    main()