التابع ConfigParser.optionxform()‎‎ في بايثون

من موسوعة حسوب


يحوّل التابع اسم الخيار المعطى وكما هو موجود في ملف الإعدادات أو كما هو ممرّر إلى التابع عن طريق الشيفرة التي يكتبها المستخدم إلى الصيغة التي يجب استخدامها في البنية الداخلية لملفات الإعدادات.

البنية العامة

optionxform(option)

‎المعاملات

option

المعامل الذي سيحوّله التابع إلى صيغة ملفات الإعدادات.

القيمة المعادة

تعيد طريقة التنفيذ الافتراضية لهذا التابع اسم الخيار بعد تحويل جميع الحروف إلى أحرف صغيرة، ويمكن إعادة تعريف هذا التابع باستخدام أصناف فرعية ويمكن للمبرمج أن يعين خاصية لهذا الاسم في نسخ الصنف ConfigParser للتأثير على طريقة عمل التابع.

لا حاجة لإنشاء صنف فرعي من المحلّل لاستخدام هذا التابع، ويمكن تعيينه في نسخة من الصنف لدالة تأخذ وسيطًا نصّيًّا ويعيد سلسلة نصية. يؤدي تعيين التابع إلى سلسلة نصية -على سبيل المثال- إلى جعل أسماء الخيارات حساسة لحالة الأحرف:

cfgparser = ConfigParser()
cfgparser.optionxform = str

يجدر التنبيه إلى أنّ المسافات البيضاء حول أسماء الخيارات تُحذف عند قراءة ملفات الإعدادات قبل استدعاء التابع optionxform()‎.

أمثلة

يبين المثال التالي طريقة عمل التابع:

>>> config = """
... [Section1]
... Key = Value
...
... [Section2]
... AnotherKey = Value
... """
>>> typical = configparser.ConfigParser()
>>> typical.read_string(config)
>>> list(typical['Section1'].keys())
['key']
>>> list(typical['Section2'].keys())
['anotherkey']
>>> custom = configparser.RawConfigParser()
>>> custom.optionxform = lambda option: option
>>> custom.read_string(config)
>>> list(custom['Section1'].keys())
['Key']
>>> list(custom['Section2'].keys())
['AnotherKey']

مصادر