2012-10-05 14 views
6

यह मेरा उदाहरण स्क्रिप्ट है:Booleans हमेशा सच लौट

import ConfigParser 

config = ConfigParser.ConfigParser() 
config.read('conf.ini') 

print bool(config.get('main', 'some_boolean')) 
print bool(config.get('main', 'some_other_boolean')) 

और यह conf.ini है:

[main] 
some_boolean: yes 
some_other_boolean: no 

जब स्क्रिप्ट चलाने, यह True दो बार प्रिंट करता है। क्यूं कर? यह False होना चाहिए, some_other_booleanno पर सेट है।

उत्तर

18

उपयोग getboolean() है

RawConfigParser.getboolean(section, option) 

एक सुविधा विधि है जो एक बूलियन मान को निर्दिष्ट खंड में विकल्प coerces । ध्यान दें कि विकल्प के लिए स्वीकृत मान "1", "हां", "सत्य" और "चालू" हैं, जो इस विधि को सही करने के लिए, और "0", "नहीं", "झूठा" और "बंद" ", जो इसे झूठी वापसी का कारण बनता है। इन स्ट्रिंग मानों को केस-असंवेदनशील तरीके से चेक किया जाता है। कोई अन्य मूल्य यह ValueError बढ़ाने के लिए कारण होगा।

bool() कन्स्ट्रक्टर एक खाली स्ट्रिंग को गलत में परिवर्तित करता है। गैर खाली तार सही हैं। bool() "झूठी", "नहीं", आदि के लिए विशेष कुछ भी नहीं करता है

>>> bool('false') 
True 
>>> bool('no') 
True 
>>> bool('0') 
True 
>>> bool('') 
False 
+0

बाह मेरे पास उदाहरण स्ट्रिंग का लगभग एक ही सेट था ... –

1

यह स्ट्रिंग "नहीं" देता है।

print config.getboolean('main', 'some_boolean') 
print config.getboolean('main', 'some_other_boolean') 

Python manual से:: bool ("नहीं") यह सच है

संबंधित मुद्दे