Well this is a BGP Design question where the answer might be different in each network.
Weight ... this is a Cisco-proprietary thing, which is always only local to a single router, steering outbound traffic flow. Weight can never steer inbound traffic flow from a router's point of view.
Local Preference ... similar to Weight it is steering outbound traffic flow, but this attribute is propagated within the same AS, meaning if you configure Local Pref on a router, it will announce this to iBGP peers. From a whole AS perspective, Local Pref can only steer outbound traffic flow, never inbound traffic flow.
Now MED ... MED is different, MED is designed to influence INBOUND traffic flow. By design a value in the MED attribute is announced to neighbors to influence how traffic is sent to us.
But you can manipulate incoming BGP announcements by setting a MED value .. technically you are then influencing outbound traffic flow with MED, but only by manipulating announcements from neighbors to make them look like as if the neighbor announces a MED value. You just need to be very careful here... the default MED on routes where no MED is set, is 0 ... and moreover, MED is only compared for routes received from the same AS per default. Keeping that in mind - if you want to use MED for steering outbound traffic, you really need to be sure that you set a MED (preferably a different value) to each and every route that needs to be compared. Otherwise the one without MED will win. You'll also want "bgp deterministic-med" to be enabled, and if you want to compare routes announced from different AS' also "bgp always-compare-med"!
At the end of the day, yes, you can use all three methods to influence outbound traffic flow.
MED is just most likely the most inconvenient one to do so, since weight and local-pref both are easier to configure (for outbound traffic control) as well as they come before MED in the BGP Best Path Selection.
Hope this helps!!