code: def watch_name(self, name, flags=0, name_appeared=None, name_vanished=None):
  		
  		name_appeared_handler = (lambda con, name, name_owner: name_appeared(name_owner)) if name_appeared is not None else None
  		name_vanished_handler = (lambda con, name:             name_vanished())           if name_vanished is not None else None
  		return NameWatcher(self.con, name, flags, name_appeared_handler, name_vanished_handler)
docs: Asynchronously watches a bus name.
  
  		Starts watching name on the bus specified by bus_type and calls
  		name_appeared and name_vanished when the name is known to have a owner
  		respectively known to lose its owner.
  
  		To receive name_appeared and name_vanished callbacks, you need an event loop.
  		https://github.com/LEW21/pydbus/blob/master/doc/tutorial.rst#setting-up-an-event-loop
  
  		Parameters
  		----------
  		name : string
  			Bus name to watch
  		flags : NameWatcherFlags, optional
  		name_appeared : callable, optional
  			Invoked when name is known to exist
  			Called as name_appeared(name_owner).
  		name_vanished : callable, optional
  			Invoked when name is known to not exist
  
  		Returns
  		-------
  		NameWatcher
  			An object you can use as a context manager to unwatch the name later.
  
  		See Also
  		--------
  		See https://developer.gnome.org/gio/2.44/gio-Watching-Bus-Names.html#g-bus-watch-name
  		for more information.