0
if not sky.has_key('blue'):
    get_currently_compared_key # blue
elif not sky.has_key('cloud'):
    get_currently_compared_key # cloud

在上面的代码中,我想在 if 语句中得到“蓝色”。有什么有用的方法吗?

编辑 1:如果天空 == 'blue' -> 如果不是天空 == 'blue' 编辑 2:如果不是 sky.has_key('blue')...

4

2 回答 2

2

没有魔法标识符可以扩展到blue结果内部,如果这就是你的意思,尽管sky显然具有您所追求的价值.

编辑:我想你的意思是sky != 'blue'而不是not sky == 'blue'. 不,没有神奇的方法可以在条件下获得比较值。再次键入'blue'或创建一个将其保存在条件之外的变量:

BLUE = 'blue'

if sky != BLUE:
    make_the_sky(BLUE)

编辑 2:好的,所以它是has_key. 仍然没有魔法。请注意,它has_key已被弃用了相当长的一段时间以支持'blue' in sky(或'blue' not in sky)。

于 2012-04-17T11:03:04.790 回答
1

不,这样做的唯一方法是显而易见的:

sky_colour = 'blue'
if not sky == sky_colour:
    do_something(sky_colour)

或为您的编辑:

sky_colour = 'blue'
if sky_colour not in sky:
    do_something(sky_colour)

has_key()不需要 - 改用in关键字,它更具可读性。

于 2012-04-17T11:05:40.817 回答