我正在修改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语句。
由于
答案 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
。