2016-03-30 19 views
1

Merhaba ben ilk kez piton yazıyorum:çağrılması py komut değeri

Ben belirli bir özelliğin değerini mülkiyet dosyayı yükler ve yazdırır bir varolan getprop.py komut:

import sys 
import util 

if len(sys.argv) < 3: 
    print "Error! Usage is: getprop.py [propfile] [propname]" 
    sys.exit(1) 

props = util.loadprops(sys.argv[1]) 
if sys.argv[2] in props: 
    print props(sys.argv[2]); 

Şimdi başka py komut bir özelliğin değerini almak gerekir, bu yüzden ben işlevselliğini rahatsız etmeyin ve ben başka bir senaryoya kullanabilirsiniz öyle ki yukarıdaki senaryoyu modifiye:

import sys 
import util 

def getpropvalue(propfile, propname): 
    props = util.loadprops(propfile) 
    if propname in props: 
    return props[propname] 

if len(sys.argv) < 3: 
    print "Error! Usage is: getprop.py [propfile] [propname]" 
    sys.exit(1) 

else: 
    print getpropvalue(sys.argv[1], sys.argv[2]); 

ve sonra diğer komut dosyasında getprop dosyasını içe aktarıyorum ve getprop.getpropvalue (FILE_NAME, PROP_NAME) gibi yöntemi çağırın ve ekranın değerinin değerini yazdırır.

Neden değeri yazdırıyor? Bu sorunu çözmek için daha iyi bir yolu var mı?

+0

Beklenen sonuç nedir? –

+0

try: if __name__ == "__main__": o zaman – SnakeFoot

+0

orada @SnakeFoot var, ancak yorumlarda yorum yapmazsanız – SnakeFoot

cevap

2
gibi bir IDE veya konsoldan komut dosyasını çalıştırın, bu şekilde getprop.py değiştirin

"__main__" ayarlanacak bir __name__ değişkeni kod alındığında yürütülmesini engeller.

+0

Çok teşekkürler David! – user1731553

3

Komut dosyasını yalnızca doğrudan çağrıldığında çalıştırmanın bir yolu vardır. senin getprop kodunun sonuna bu satırları ekleyin:

if __name__ == "__main__": 
    main() 

doğrudan komut dosyasını çalıştırın (ithal değil) eğer main işlevi yalnızca çağrılacak gidiyor Bu şekilde. Aradığın şey bu mu?
Bazı açıklama:

import sys 
import util 

def getpropvalue(propfile, propname): 
    props = util.loadprops(propfile) 
    if propname in props: 
    return props[propname] 

if __name__ == '__main__': 
    if len(sys.argv) < 3: 
     print "Error! Usage is: getprop.py [propfile] [propname]" 
     sys.exit(1) 

    else: 
     print getpropvalue(sys.argv[1], sys.argv[2]); 

Bu: Her çalışan script python script.py

+0

Açıklama için teşekkürler Leva! – user1731553