Найти - Пользователи
Полная версия: семантика Python
Начало » Python для новичков » семантика Python
1
dtnis19
Доброго времени суток, я новичок в Python. очень много раз встречал вот такое объявление функции -> name = models.CharField(max_length=50). Не понимаю что здесь делает max_length. Чем это объявление отличается от name = models.CharField(50)
vic57
параметр по умолчанию
 >>>  def f(n=10):
    print(n)
    
>>> f()
10
>>> f(9)
9
FishHook
dtnis19
Не понимаю что здесь делает max_length. Чем это объявление отличается от name = models.CharField(50)
В питоне даже позиционные аргументы можно задавать через имя.
Rafik
dtnis19
name = models.CharField(max_length=50).Не понимаю что здесь делает max_length. Чем это объявление отличается от name = models.CharField(50)
Отличие в том, что max_length может иметь уже присвоенное значение по умолчанию при объявлении функции, т.е именованным аргументом. В этом случае можно даже послать значение в функцию как позиционный аргумент, функция съест его и не подавится. Если несколько именованных аргументов, то при передаче по имени (max_length=50) не обязательно соблюдать последовательность аргументов в порядке, котором идут они при объявлении функции.
Например: def func(arg0, arg1=1, arg2=2). При вызове можно вот так безобразничать: func(arg2=5, arg0=“hren”, arg1=333). Функция примет эти аргументы, правильно разрулит их и отработает как положено.
FishHook истину глаголет насчёт передачи по имени.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB