Dada uma classe Python que será instanciada apenas uma vez, ou seja, haverá apenas um objeto da classe. Eu queria saber em quais casos, faz sentido criar uma instância de classe única em vez de trabalhar diretamente com a classe.
Há uma pergunta semelhante , mas tem um foco diferente:
- trata-se de agrupar variáveis e funções globais em uma classe e
- Não é específico do Python. O último significa que não considera o fato de que (em Python) as classes também são objetos.
ATUALIZAR:
No Python, eu posso fazer o seguinte com classes e objetos:
class A(object):
pass
A.some_state_var = True
# Then later
A.some_state_var = False
my_a = A()
my_a.some_state_var = True
# Then later
my_a.some_state_var = False
Portanto, não vejo como a escolha entre uma classe e uma instância dessa classe é sobre estado (em Python). Eu posso manter um estado com qualquer um dos dois.
Além disso, a motivação para criar minha classe / instância de classe não é impor um requisito Singleton.
Além disso, não se trata tanto de criar um novo tipo.
A motivação é agrupar códigos e dados relacionados e ter uma interface para eles. Foi por isso que inicialmente o modelei como uma classe em um diagrama de classes. Somente quando se tratou da implementação, comecei a me perguntar se instanciaria essa classe ou não.