Python 循环中的反斜杠和下划线
有人能解释一下下面的代码在做什么吗?我不明白2-6线在做什么Python 循环中的反斜杠和下划线,python,syntax,Python,Syntax,有人能解释一下下面的代码在做什么吗?我不明白2-6线在做什么 for row in hosts_reader: hostname, \ machine, \ consul_server_mode, \ _, _, _, \ fixed_ip = row if hostname: all_hosts.append(Host( hostname.strip(), fixed_ip.stri
for row in hosts_reader:
hostname, \
machine, \
consul_server_mode, \
_, _, _, \
fixed_ip = row
if hostname:
all_hosts.append(Host(
hostname.strip(),
fixed_ip.strip(),
devops_groups.splitlines(False),
True if consul_server_mode == "TRUE" else False,
))
return all_hosts
这些反斜杠只是换行符,用于拆分一行代码,使其看起来更漂亮,更适合在屏幕上显示 行是一个类似元组的对象,包含多个元素,在这些代码行中,这些元素被提取并存储在多个变量中
例如,hostname将包含第一个元素,fixed_ip将包含最后一个元素。最后一个元素之前的三个元素将被忽略uu表示,按照惯例,一个我们没有指定名称的变量,因此也不打算在以后使用反斜杠允许转到同一语句的新行。您的代码如下所示:
for row in hosts_reader:
hostname, machine, consul_server_mode, _, _, _, fixed_ip = row
if hostname:
all_hosts.append(Host(
hostname.strip(),
fixed_ip.strip(),
devops_groups.splitlines(False),
True if consul_server_mode == "TRUE" else False,
))
return all_hosts
这意味着行是一个元组,代码在变量hostname中设置元组的第一个元素,在机器中设置第二个元素,依此类推。第4到第6个元素不相关,因此它使用uu作为虚拟变量/占位符 没有真正解释那行本身的作用可能重复的u表示一个我们没有指定名称的“变量”,这可能会产生误导是有效的变量名,可以稍后使用。它只是一种标准变量名,用于代码后面未使用的值。