Домой

Последняя активность

  

Позиционные и именованные аргументы в функциях Python

PyDeKolt avatar PyDeKolt (0) [#] (27.05.2013 / 15:57)
Для удобства в Python, функции умеют принимать переменное число аргументов.
  1. # позиционные и именованные аргументы в функциях
  2. def server(host, port=80, debug=False, *args, **kwargs):
  3. print host, port, debug
  4. print args
  5. print kwargs
  6. # передача позиционного аргумента
  7. server('localhost')
  8. # localhost 80 False
  9. # ()
  10. # {}
  11. # невозможно использование позиционных и именованных аргументов (в данном случае)
  12. server('localhost', port=89, debug=True, 'ServerName', pid=5678)
  13. # SyntaxError: non-keyword arg after keyword arg
  14. # т.к. нарушается правило следования - сначала следуют позиционные аргументы, затем именованные.
  15. # НО, есть альтернативный вариант
  16. server('localhost', 89, True, 'ServerName', pid=5678)
  17. # localhost 89 True
  18. # ('ServerName',)
  19. # {'pid': 5678}
  20. # можно изменять порядок передачи аргументов `port` и `debug`
  21. server('localhost', debug=True, port=89, pid=5678)
  22. # localhost 89 True
  23. # ()
  24. # {'pid': 5678}
  25. # передача аргументов в упакованном виде
  26. args = ('ServerName',) # кортеж или список, вместо `args` может быть любое другое имя например `options`
  27. kwargs = {'pid':5678}
  28. server('localhost', True, 89, *args, **kwargs)
  29. # localhost True 89
  30. # ('ServerName',)
  31. # {'pid': 5678}

* Учебник по языку программирования Питон
  Всего: 1

Зарегистрируйтесь и сможете комментировать все темы. Кнопочка вверху
Фильтр по автору
Скачать тему

В Форум

Новые вверху
Statok.net Рейтинг@Mail.ru
spywap.nettop-sid.ru
Яндекс.Метрика