`get` really could just be an override of `[]`.  I'm not sure why it's separate unless the original author didn't know you could override `[]` with `def [](key)` or they didn't want the type coercion in `[]`.