On Sat, 21 Jul 2012 17:36:52 +0300
Mesut Taşçı <[email protected]> wrote:

> Hayvan ve Insan classlarının getYemek diye fonksiyonları var.
> Elimdede canlinin tipini tutan tipid adında bir değişkenim var.Ben her
> seferinde tipid ye göre ifleyip eger canlı hayvansa Hayvan classındaki
>  getYemek fonksiyonunu, eger insan ise Insan classındaki getYemek
> fonksiyonunu çağırmak yerine Canli classına tipid ile çalışan getYemek
> adında bir fonksiyon yazıyorum ve tipid kontrolunu Canli classındaki
> getYemek fonksiyonunda yapıyorum.
> 
> Kodu çalıştırdığımda import hatası yiyorum.

 İmport 'ların scope 'unu daraltabilirsiniz. Kod çalışacak ama fazlaca
içiçe / çembersel import / bağımlılık var. Kodunuzun genel yapısını
gözden geçirmenizde fayda var. 

 Bir de "is" ile yapılan kontrolleri string dışında kullanmamakta fayda
var, onun yerine "==" kullandım.

 diff -Nur py_circular-old//Canli.py py_circular/Canli.py
--- py_circular-old//Canli.py   2012-07-21 17:20:06.000000000 +0300
+++ py_circular/Canli.py        2012-07-21 19:37:36.892000765 +0300
@@ -1,14 +1,14 @@
 #!/usr/bin/env python 
 # -*- coding: utf-8 -*-
 
-import Insan
-import Hayvan
 
 class  Canli(object):
        def getYemek(self,tipid):
-               if (tipid is 1):
+               if tipid == 1:
+                       import Insan
                        mycanli=Insan.Insan()
                else :
+                       import Hayvan
                        mycanli=Hayvan.Hayvan()
 
                return mycanli.getYemek()
diff -Nur py_circular-old//main.py py_circular/main.py
--- py_circular-old//main.py    2012-07-21 17:26:42.000000000 +0300
+++ py_circular/main.py 2012-07-21 19:37:28.483000253 +0300
@@ -7,4 +7,5 @@
 
 tipid=1 #insan
 c_canli=Canli.Canli()
-c_canli.getYemek(tipid)
+print "Canli yemeği %s" % c_canli.getYemek(tipid)
+


-- 
 Onur Küçük                                   Özgür Yazılım A.Ş. ~ >
 <onur.--.-.ozguryazilim.com.tr>      http://www.ozguryazilim.com.tr

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap