在Python中用默认值初始化变量
我有一个这样的函数:
def __init__(self, out_file='out.csv', tmp_folder=None):
self.tmp_folder = tmp_folder if tmp_folder != None else join(getcwd(), '__tmp__')
我在想有没有更聪明的方法来实现它,类似于js的写法:
self.tmp_folder = tmp_folder || join(getcwd(), '__tmp__')
2 个回答
2
是的,可以这样做:
self.tmp_folder = tmp_folder or join(getcwd(), '__tmp__')
你只需要用 or
来代替 ||
就可以了。
3
因为 None
被认为是 False
,所以你可以这样做:
def __init__(self, out_file='out.csv', tmp_folder=None):
self.tmp_folder = tmp_folder or join(getcwd(), '__tmp__')
不过要注意,如果 tmp_folder
是任何被认为是假的值(比如 False
、0
、[]
、{}
等等),这段代码会把 self.tmp_folder
赋值为 join(getcwd(), '__tmp__')
。