Построение струн: длина прячущейся струны? - PullRequest
0 голосов
/ 02 сентября 2011

Я изменяю код Python, и я наткнулся на это утверждение и не знаю, что это значит, и я не могу найти что-либо о нем. Извините, что это так вне контекста ..

conn.queue.put('%x\r\n%s\r\n' % (len(chunk), chunk)
                                        if chunked else chunk)

Код помещает чанк в многопоточную очередь для отправки позже. Мой вопрос заключается в том, что здесь происходит "% x \ r \ n% s \ r \ n". Похоже, он помещает длину строки, а затем скрывает ее с возвратом каретки? Кроме того, я запутался в том, что делает «if chunked else chunk», поскольку он является оператором if без тела.

Спасибо

1 Ответ

2 голосов
/ 02 сентября 2011

Это не оператор if без тела, это условное выражение. A if condition else B оценивается как A, если condition имеет значение true, в противном случае оно оценивается как B. Так что в этом случае:

'%x\r\n%s\r\n' % (len(chunk), chunk)
                                    if chunked else chunk

Будет ли:

'%x\r\n%s\r\n' % (len(chunk), chunk)

или просто chunk, в зависимости от того, истинно ли chunked или нет. Результат этого затем передается в conn.queue.put.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...