Ir para o conteúdo
Tafs

Deletar objeto pelo self

Mensagens Recomendadas

Tafs

Olá.

Tenho uma dúvida. Se tenho uma classe chamada Bala, por exemplo, há alguma forma de apagá-la usando o self.?

Exemplo:

class Bala:
   def __init__(self,x,y):
       self.x = x
       self.y = y

Isso é para um jogo em pygame, no qual a bala segue uma determinada direção. Se eu quiser removê-la da tela, e apagá-la (assim não há espaço ocupado sem necessidade na memória), há alguma forma de fazer dentro da classe?

Li em alguns lugares na internet que um del self só apaga a referência que o self faz para aquela classe (ou algo assim), e não é isso que quero. Quero apagar o objeto.

Alguma dica? =)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
eatg75

Tambem penso que nao, pois self e uma referencia do objeto dentro da classe, e em algum momento dentro do metodo de uma operacao invocares algo como :

# (...) some code
self.x = x
self.y = y
del self # so apagas esta referencia para o objeto nao o objeto em si

Dentro da logica do teu jogo podes apagar a bala.


Victarion seized the dusky woman by the wrist and pulled her to him.

Victarion - She will do it. Go pray to your red god. Light your fire, and tell me what you see.

Moqorro's dark eyes seemed to shine.

Moqorro - I see dragons.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tafs

Sim, eu sei. No momento tenho uma função que detecta a posição das balas, e se passam da área da tela, elas são removidas de uma lista (e perdem todas as referências, virando lixo e sendo coletadas pelo GC do Python, se não me engano).

Porém, estou tendo aulas em ActionScript 3, e em um determinado jogo observei que o controle da posição da bola era feito de dentro do objeto (com o this. do AS3). Naquele exemplo, a bola só mudava de direção, não era apagada. Me pergunto se teria como apagá-la em Python, de dentro do próprio objeto. Ou seja: o objeto se mata.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.