Прежде всего, я не занимаюсь веб-программированием. Я столкнулся с джанго и немного почитал о моделях. Я был заинтригован следующим кодом (от djangoproject.com):
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
def __str__(self):
# Note use of django.utils.encoding.smart_str() here because
# first_name and last_name will be unicode strings.
return smart_str('%s %s' % (self.first_name, self.last_name))
По моему пониманию python, first_name и last_name являются переменными класса, не так ли? Как это используется в коде (потому что я предполагаю, что установка Person.first_name или Person.last_name повлияет на все экземпляры Person)? Почему он используется таким образом?