我正在对另一位现在离开的同事的python脚本进行故障排除。 Python版本是2.6
我看到以下内容:
self.connections = {}
[......]
#example device name
device_name = 'fedora'
self.devices = [device_name]
for dev in self.devices:
if self.connections[dev,'is_linux']:
self.conn_ssh.switch_connection(dev)
有人可以向我解释if语句评估的内容吗?
我之前没有在python中看到过这个...
答案 0 :(得分:3)
字典可以使用元组作为键,这正是在那里发生的事情:
>>> d = {(1, 2): 100, ('a', 'b', 'c'): 1000}
>>> d[1, 2]
100
>>> d[(1, 2)]
100
>>> d['a', 'b', 'c']
1000
>>> d[('a', 'b', 'c')]
1000
逗号分隔值将转换为tuple:
>>> 1, 2
(1, 2)
>>> 'a', 'b', 'c'
('a', 'b', 'c')
Gotcha !,带有单个项目的元组用逗号表示:
>>> t = 'a', #or ('a',)
>>> type(t)
<type 'tuple'>
>>> t = ('a') #Not a tuple
>>> type(t)
<type 'str'>