Zasadniczo jest już wbudowana lub powszechnie dostępna funkcja, która to robi:

def rename_attribute(object_, old_attribute_name, new_attribute_name):
    setattr(object_, new_attribute_name, getattr(object_, old_attribute_name))
    delattr(object_, old_attribute_name)
7
chappy 14 sierpień 2014, 18:30

2 odpowiedzi

Najlepsza odpowiedź

Nie ma wbudowanej lub standardowej funkcji biblioteki. Zakładam, ponieważ:

  • Jest trywialny, ponieważ twoje całkowicie wystarczające widoki
  • Nie ma ogólnego przypadku
3
knitti 14 sierpień 2014, 14:35

Nie, nie ma, ale możesz go zrobić łatwiejszy gra z przestrzeni nazw:

def rename_attribute(obj, old_name, new_name):
    obj.__dict__[new_name] = obj.__dict__.pop(old_name)
14
enrico.bacis 14 sierpień 2014, 14:40