Почему переменная выдает TypeError, а функция - нет?

Может ли кто-нибудь объяснить, почему этот код работает:

first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)

def full_name(self):
    return self.first_name + ' ' + self.last_name

def __str__(self):
    return self.full_name()

Но этот код не делает этого:

first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)

full_name = first_name + ' ' + last_name

def __str__(self):
    return self.full_name

Почему только одна из функций with и without дает мне ошибку типа TypeError? Разве они не делают одно и то же?

Вернуться на верх