You don't really need to attach the value to the Event object, you can just use some other global, attribute, etc. separate from the Event, and use the Event to signal that it's been updated. And that's the usual way of doing things.
But there's really nothing wrong with what you're doing. And it doesn't add any other problems beyond the usual race problems with using events for signaling. However, it does seem a bit misleading—it makes it seem as if the param is somehow synchronized, when it isn't.
If you're trying to signal that a new value is ready, and synchronize access to that value you almost always want a Condition, like this:
c = Condition()
data = None
...
with c:
data = "new data"
c.notify()
...
with c:
while data is None:
c.wait()
Or, more simply, just use a queue and don't share a variable in the first place:
q = Queue()
...
q.put(data)
...
data = q.get()
Eventas aCondition.