在Python中用默认值初始化变量

2 投票
2 回答
1334 浏览
提问于 2025-04-18 04:50

我有一个这样的函数:

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 是任何被认为是假的值(比如 False0[]{} 等等),这段代码会把 self.tmp_folder 赋值为 join(getcwd(), '__tmp__')

撰写回答