学习笔记,参考文档《Python CookBook》
# -*- coding: utf-8 -*-
# @CreateTime : 2022/5/10 9:17
# @ModifyTime : 2022/5/10 9:17
# @Author : xuming
# @File : 7.5定义带有默认参数的函数.py
# @Software: PyCharm
# @Description:
"""
问题:定义一个函数,其中有一个或多个参数是可选的且带有默认值
解决方案:定义一个函数,为参数赋值且确保默认参数出现在最后即可
"""
import time
import datetime
def spam(a, b=42):
print(a, b)
spam(1)
spam(1, 3)
spam(2, b=13)
# 若默认值为可变容器,比如列表,集合,字典等,则应该把None作为默认参数值
# 对默认参数的赋值只会在函数定义的时候绑定一次。
x = 42
def spam1(a, x=None):
return a, x
print(spam1(1, x=3))
print(spam1(3))
x = 65
print(spam1(1))
# 使用None来描述具有动态默认值的参数
def log(message, when=None):
when = datetime.datetime.now()
return when, message
print(log("你好"))
time.sleep(1)
print(log("嗨"))