字符串构建:隐藏字符串长度?

时间:2011-09-01 22:57:13

标签: python string

我正在修改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 个答案:

答案 0 :(得分:2)

这不是一个没有正文的if语句,它是一个条件表达式。如果A if condition else B为真,则A评估为condition,否则评估为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