Классы - это объекты «первого класса» в Python, то есть они могут передаваться и обрабатываться так же, как и все другие объекты.
Модели - это классы - вы можете сказать, что вы создаете новые модели используя инструкции класса:
class Person(models.Model):
last_name = models.CharField(max_length=64)
class AnthropomorphicBear(models.Model):
last_name = models.CharField(max_length=64)
Идентификаторы Person
и AnthropomorphicBear
привязаны к классам Django, поэтому вы можете их передавать. Это может быть полезно, если вы хотите создать вспомогательные функции, которые работают на уровне модели (и совместно используют общий интерфейс):
def print_obj_by_last_name(model, last_name):
model_name = model.__name__
matches = model.objects.filter(last_name=last_name).all()
print('{0}: {1!r}'.format(model_name, matches))
Таким образом, print_obj_by_last_name
будет работать либо с Person
, либо с AnthropomorphicBear
моделей. Просто передайте модель так:
print_obj_by_last_name(model=Person, last_name='Dole')
print_obj_by_last_name(model=AnthropomorphicBear, last_name='Fozzy')
Так как многострочные вкладки официально все еще не поддерживаются в VSCode, я хотел привлечь к запросу новых функций Ваше внимание, которое я просто отправил на их GitHub. Вместо того, чтобы всегда перенести вкладки к новой строке я предлагаю разметить их на строках, которые абсолютно независимы друг от друга. Пользователь решает, они могут смешать короткие строки с длинными строками, которые все еще требуют прокрутки. Посмотрите детали здесь:
github.com/microsoft/vscode/issues/80510
Мое предлагаемое решение, конечно, требует большего количества работы, чем просто переносящиеся вкладки к новой строке, но в ответ это позволяет пользователю организовать их вкладки способом, которые могли повысить производительность.