Python 循环中的反斜杠和下划线

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

有人能解释一下下面的代码在做什么吗?我不明白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.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表示一个我们没有指定名称的“变量”,这可能会产生误导是有效的变量名,可以稍后使用。它只是一种标准变量名,用于代码后面未使用的值。