Quadrivetores, parte 1: operações básicas

Este é o primeiro desafio da coleção "Quadrivetores". Os quadrivetores são vetores com quatro componentes usados para descrever a física relativística. Para obter mais detalhes, consulte esta entrada da wiki.

Neste desafio, crie uma classe FourVector com as seguintes propriedades:

  • Se for chamada com uma lista de comprimento 4 como parâmetro, ela usa os elementos da lista como componentes da instância de FourVector (FV).
  • Se for chamada sem um parâmetro, os componentes devem ser [0.0, 0.0, 0.0, 0.0].
  • Métodos getter e setter GetComponents e SetComponents; consulte os casos de teste.
  • Métodos para somar e subtrair duas instâncias de FV.
  • Permite comparar dois quadrivetores.
  • Permite imprimir um FV no formato (0.5, 1.0, -2.0, 10.0), com os componentes arredondados para três casas decimais.

Considere usar métodos mágicos como __add__, __eq__ e __str__ para resolver os três últimos itens.

Exemplos

v = FourVector([1, 2, 3, 4])
print(v) ➞ (1, 2, 3, 4)

v2 = FourVector([1, 0, 1, 0])
print(v + v2) ➞ (2, 2, 4, 4)

Observações

Guarde sua classe FourVector para usá-la mais tarde; adicionaremos novos métodos nos próximos desafios desta série!