Вы можете изменить встроенные классы, исправляя обезьяны с помощью запретный плод
Но для установки запрещенных фруктов требуется компилятор C и неограниченная среда , поэтому он, вероятно, не будет работать или потребует больших усилий для запуска на Google App Engine, Heroku и т. Д.
В этой библиотеке я изменил поведение класса unicode
в Python 2.7 для турецкой i,I
проблемы в верхнем / нижнем регистре.
# -*- coding: utf8 -*-
# Redesigned by @guneysus
import __builtin__
from forbiddenfruit import curse
lcase_table = tuple(u'abcçdefgğhıijklmnoöprsştuüvyz')
ucase_table = tuple(u'ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ')
def upper(data):
data = data.replace('i',u'İ')
data = data.replace(u'ı',u'I')
result = ''
for char in data:
try:
char_index = lcase_table.index(char)
ucase_char = ucase_table[char_index]
except:
ucase_char = char
result += ucase_char
return result
curse(__builtin__.unicode, 'upper', upper)
class unicode_tr(unicode):
"""For Backward compatibility"""
def __init__(self, arg):
super(unicode_tr, self).__init__(*args, **kwargs)
if __name__ == '__main__':
print u'istanbul'.upper()