day12 Python 函数形参默认值的坑

函数形参默认值容易产生的误区

  注意:函数在加载时候,会创建默认值,如果这个默认值是一个可变对象,那么要注意以下坑。

def func(val, list=[]):  # 函数在加载的时候会创建list的默认列表,其他调用这个函数的时候,如果没有传递新的list,那么会共用同一个list。
    print(id(list))
    list.append(val)
    return list

# 此处list1和list3在调用函数的时候,发现函数体内部的默认list的内存地址相同,所以最后print(list1)的时候,里面有两个值
list1 = func(10)
list2 = func(123, []) # 此处传递给函数func了一个实参[],此时发现函数体内部的list的内存地址发生了变化。
list3 = func('a')
print('list1=%s' % list1)  # [10,"a"] 
print('list2=%s' % list2)  # [123]
print('list3=%s' % list3)  # [10,"a"]

转载于:https://www.cnblogs.com/fanghongbo/p/9892085.html

在 MySQL 函数可以有默认值。当使用函数时,如果没有指定函数的参数值,MySQL 将使用这些参数的默认值。下面是一些常见的 MySQL 函数默认值: 1. 字符串函数默认值: - CONCAT: 如果没有传递参数,则返回 NULL。 - SUBSTRING: 如果未指定长度参数,则返回从开始位置到字符串末尾的子字符串。 - REPLACE: 如果未指定替换字符串,则返回原始字符串。 - TRIM: 如果未指定修剪字符,则默认修剪空格字符。 - UPPER: 如果未指定字符串,则返回 NULL。 - LOWER: 如果未指定字符串,则返回 NULL。 2. 数值函数默认值: - ROUND: 如果未指定精度,则默认为 0。 - CEILING: 如果未指定值,则返回 NULL。 - FLOOR: 如果未指定值,则返回 NULL。 - ABS: 如果未指定值,则返回 NULL。 - POW: 如果未指定指数,则默认为 2。 - SQRT: 如果未指定值,则返回 NULL。 - RAND: 如果未指定种子,则使用当前时间戳作为种子。 3. 日期和时间函数默认值: - NOW: 如果未指定时区,则使用服务器默认时区。 - DATE: 如果未指定日期,则返回 NULL。 - TIME: 如果未指定时间,则返回 NULL。 - YEAR: 如果未指定日期,则返回 NULL。 - MONTH: 如果未指定日期,则返回 NULL。 - DAY: 如果未指定日期,则返回 NULL。 - HOUR: 如果未指定时间,则返回 NULL。 - MINUTE: 如果未指定时间,则返回 NULL。 - SECOND: 如果未指定时间,则返回 NULL。 请注意,函数默认值可能会因 MySQL 版本和配置而有所不同。建议在使用函数时查阅相关文档以了解默认值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值