Koşullu atama hakkında

arkadaşlar pythonda koşullu atamalar yapılabiliyormuş ama pygame ’ de bir sprite classının içinde şu kodu çalıştıramıyorum:

self.image = pg.image.load("FireBallLeft.png").convert_alpha() if  self.facing == -1

hatası =

  File "C:\Users\tolga\PycharmProjects\kitap-101\demo_stage.py", line 418
    self.image = pg.image.load("FireBallLeft.png").convert_alpha() if self.facing == -1
                                                                                      ^
SyntaxError: invalid syntax

Çünkü kullanım şekliniz eksik. Eğer self.facing == -1 şartı sağlanmaz ise self.image ne olacak sizce? Bunu da belirtmemiz lazım. Eğer şart sağlanmaz ise self.image niteliğinin hiç tanımlanmamasını istiyorsanız normal bir if bloğu kullanmalısınız (self.image niteliğinin zaten tanımlı olmadığını varsayarak bunu söyledim). Eğer bu nitelik tanımlı ise ve şart sağlanmadığında hiç değişmemesini istiyorsanız bunu kullanabilirsiniz:

self.image = pg.image.load("FireBallLeft.png") if  self.facing == -1 else self.image

Ama bunun yerine normal bir if bloğu kullanmanız daha hoş olacaktır.

Buradaki else kısmı eklenmek zorunda, yukarıda da sebebini belirttim. Syntax hatasını da bu yüzden alıyorsunuz. Eğer ifdeki şart sağlanmaz ise elseden sonraki değer değişkene atanır.

1 Beğeni