I understand how weights are defined for a Lie algebra representation.

How are weight spaces defined for a Lie group action (with respect to a fixed torus)?

I know this is a very embarrassing basic question, but i've looked through Harris+Fulton with no satisfactory explanation, and the only thing I can think of is using the exponential map somehow to reduce it to a Lie algebra, which seems unefficient computationally. Surely there must be a better way.