Re: [Linux-programlama] Python'da Global Değişkenler

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Tonguc Yumruk (tongucyumruk@interaktif.gen.tr)
Date: Wed 16 Mar 2005 - 10:01:35 EET


gimmeOneMorePrime() fonksiyonunda diğer satırlardan önce şunu eklersen
sorun çözülür:

global primeCount

Python'da mevcut fonksiyonun scope'u dışındaki değişkenlere doğrudan
eriştiğinde sadece read-only olarak erişebilirsin. Eğer local scope
dışındaki bir değişkene değer atamak istiyorsan bunu o değişkeni
kullanmadan önce global <değişken> olarak tanımlaman gerekir. Aksi halde
python local scope içindeki o isimde bir değişken bulup onunla oynamaya
çalışacaktır. daha önceden o değişkene bir değer atanmadığı için de hata
verecektir.

Not: E-postalarını daha sık kontrol etmelisin

Tue, Mar 15, 2005 at 09:08:27PM +0200 Tarihinde Volkan YAZICI Demişki :
> Merhaba,
>
> Saatlerdir çok basit bir sorun üzerinde takıldım kaldım. IRC'de sorduğum
> insanların biri bile soruma cevap vermek yerine, yok onun yerine şöyle
> yapsam da olurmuş şeklinde önerilerde bulundular. Artık takıntı haline
> geldi, aşağıdaki betik neden UnboundLocalError hatası verir.
>
> """ {{{ kahrolasıBetik """
> #!/usr/bin/python
>
> primeList = [2, 3]
> primeCount = len(primeList)
>
> def gimmiOneMorePrime():
> indice, lastPrimeIndice = 1, (primeCount - 1)
> tempPrime = primeList[lastPrimeIndice] + 2
>
> while indice <= lastPrimeIndice:
> if tempPrime % primeList[indice] == 0:
> indice = 1
> tempPrime += 2
> else: indice += 1
>
> primeList.append(tempPrime)
> primeCount += 1
>
> def checkIfPrime(givenPrime):
> indice = 0
>
> while givenPrime != primeList[indice]:
> if (indice + 1) == primeCount: gimmiOneMorePrime()
> elif givenPrime % primeList[indice] == 0: return False
> indice += 1
>
> return True
>
> def main():
> if checkIfPrime(31): print "ok"
> else: print "sie"
>
> if __name__ == "__main__": main()
> """ }}} """
>
> Not: Şu yöntemi kullanırsan daha iyi olur şeklinde gelecek cevaplar
> için de teşekkür ederim. Fakat tekrar hatırlatmak istiyorum, "Yukarıdaki
> program neden UnboundLocalError hatası veriyor ve nasıl kurtulunabilir
> bu hatadan?". İşte sorum tam olarak bu.
>
> İyi çalışmalar.

> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama

-- 
Sevgi Saygı GNU/Linux
########################################################################
QOTD:
	"If I could walk that way, I wouldn't need the cologne, now would I?"
########################################################################
Tonguç Yumruk


_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.