函数中的Python公共变量验证



为了让Python中关于时间序列的函数在输入时更具动态性,我总是按照以下方式编写代码来验证我是否有输入变量:

def function_a(start_date=None, end_date=None):
if start_date == None:
start_date = datetime.strftime(datetime.now() - timedelta(10), '%Y-%m-%d')
else:
start_date = start_date
if end_date == None:
end_date = datetime.strftime(datetime.now(), '%Y-%m-%d')
else:
end_date = end_date

如果用户没有输入,则将使用默认日期。

然而,我想知道你进行此类验证活动的常见做法是什么,你能提出一些建议吗?提前感谢!

对于这种情况,您可能有不同的有趣选项:

start_date_value = start_date or datetime.strftime(datetime.now() - timedelta(10), '%Y-%m-%d')

另一种选择是:

start_date_value = start_date if start_date is not None else datetime.strftime(datetime.now() - timedelta(10), '%Y-%m-%d')

如果:,您可以选择一行

var = default_value if var is None else other_value
def function_a(start_date=None, end_date=None):
start_date = datetime.strftime(datetime.now() - timedelta(10), '%Y-%m-%d') if start_date is None
end_date = datetime.strftime(datetime.now(), '%Y-%m-%d') if end_date is None