Уведомления

Группа в Telegram: @pythonsu

#1 Май 8, 2014 14:54:39

quaker
Зарегистрирован: 2013-07-13
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

**varArgs

def foo(x, y, *args, foo=None): print([x, y, foo, args])
foo(1, 2, 3, 4)

В данном коде *args выдаст 3 и 4. Но я хочу что бы этот параметр был с двумя звездочками и выводил все элементы. Почему когда я ставлю две звездочки в args:
def foo(x, y, **args, foo=None): print([x, y, foo, args])
foo(1, 2, 3, 4)
Код не работает?



Использую Python 3 + komodo edit )

Офлайн

#2 Май 8, 2014 16:03:59

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

**varArgs

Две звездочки ожидают именованных аргументов.



Офлайн

#3 Май 8, 2014 16:14:11

quaker
Зарегистрирован: 2013-07-13
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

**varArgs

FishHook
Две звездочки ожидают именованных аргументов.
Можно простой пример который будет работать на python 3?



Использую Python 3 + komodo edit )

Отредактировано quaker (Май 8, 2014 16:14:21)

Офлайн

#4 Май 8, 2014 19:27:27

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

**varArgs

>>> def func(**kwargs):
return kwargs

>>> func(a=1, b=2, c=3)
{'a': 1, ‘c’: 3, ‘b’: 2}
>>> func()
{}
>>> func(a='python')
{'a': ‘python’}

http://pythonworld.ru/tipy-dannyx-v-python/vse-o-funkciyax-i-ix-argumentax.html



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Отредактировано ajib6ept (Май 8, 2014 19:27:56)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version