Функция изменения имени Python

Есть ли в стандартной библиотеке Python функция для воспроизведения схемы изменения имени Python с именем «частного» атрибута? Вроде бы и есть, но убей не могу найти.

Я написал это, но если есть лучший способ, я весь слушаю.

def mangle_name (cls, attrname) :
    prefix = '_' + cls.__name__.lstrip('_')

    if not attrname.startswith('__') :
        attrname = '__' + attrname

    if not attrname.endswith('__') :
        return prefix + attrname
    else :
        return attrname

class Foo :
    __some_such = 3

name = mangle_name(Foo, '__some_such')
print name
print hasattr(Foo(), name)
10
задан rectangletangle 13 June 2012 в 22:37
поделиться