Using “or” in a python for loop to define default sequence

前端 未结 2 2046
闹比i
闹比i 2021-01-26 20:35

I have seen somewhere this usage of a for loop:

def func(seq=None):
    for i in seq or [1, 2, 3]:
       print i

func([3, 4, 5])  # Will print 3, 4, 5
func()           


        
2条回答
  •  执念已碎
    2021-01-26 21:06

    No! It's the operator priority! or before in
    Precedence, §6.15.
    So seq or [1, 2, 3] is evaluated before entering the loop. And seq is None.

提交回复
热议问题