LINUX.ORG.RU

[Python] объясните...

 


0

1

что значит вот это:

        try:
            node = xmpp.simplexml.BadXML2Node(output)
            kw = {'node': node}
        except Exception, ex:
            # sometimes we get invalid XML--from HTML entities
            log.error(ex)
            kw = {'body': params['body']}

и что потом значит «kw**»?
и почему в «kw**» вроде как «чистый» текст, а в «kw['node']» — с HTML -тегами?

★★★★★
Ответ на: комментарий от snoopcat

и почему после этих странных **kw нельзя больше параметр передать?
message = xmpp.Message(to=config.send_to_user, **kw, chat)
SyntaxError: invalid syntax

snoopcat ★★★★★
() автор топика
Ответ на: комментарий от snoopcat

если в двух словах то смотри:

def f(arg1=None, arg2=None)
  pass


f(True, True)
f(arg1=True, arg2=True)
f(**{arg1: True, arg2: True})

все три вызова эквивалентны. **-аргумент должен идти последним.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

ну смотри, мне надо вызвать функцию так:
message = xmpp.Message(to=config.send_to_user, **kw, <тут еще один параметр>)
как бы мне третий параметр присрать?

snoopcat ★★★★★
() автор топика
Ответ на: комментарий от snoopcat

и почему после этих странных **kw нельзя больше параметр передать?

потому же, почему и после именных параметров нельзя передавать позиционные.

mashina ★★★★★
()
Ответ на: комментарий от snoopcat

кстати,

print kw

говорит:

{'node': <xmpp.simplexml.Node instance at 0x25e7a70>}

snoopcat ★★★★★
() автор топика
Ответ на: комментарий от snoopcat

сначала идут позиционные аргументы, потом именные. У тебя функции уже передаётся первый аргумент именной, т.е. 'to=config.send_to_user' и далее можешь передавать только именные, т.е. вида 'key=value'. **kw к этому отношения не имеет.

mashina ★★★★★
()
Ответ на: комментарий от anonymous

Можно и kw['arg'] = value сделать

у него позиционный параметр, а так можно :)

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.