python函数和lambda表达式学习笔记

1. python函数

不同于其他语言,python支持函数返回多个值
为函数提供说明文档:help(函数名)或者函数名.__doc__

def str_max(str1, str2):
    '''
    比较两个字符串的大小
    '''
    str = str1 if str1 > str2 else str2
    return str
help(str_max)
print(str_max.__doc__)
Help on built-in function len in module builtins:
len(obj, /)
    Return the number of items in a container.

out[2]:'Return the number of items in a container.'

2. python函数值传递和引用(地址)传递

  1. 值传递:适用于实参类型为不可变类型(字符串、数字、元组);
  2. 引用传递:适用于实参类型不可变类型(列表、字典);
  3. 值传递和引用传递的区别:函数参数进行值传递后,若形参的值发生改变,不会影响实参的值;而函数参数进行引用传递后,改变形参的值,实参的值一会一同改变。
def demo(obj)
    obj += obj
    print("形参值为:",obj)
print("---值传递---")
a = "孙悟空"
print("a的值为:",a)
demo(a)
print("实参值为:",a)
print("---引用传递---")
a = [1, 2, 3]
print("a的值为:",a)
demo(a)
print("实参值为:",a)
运行结果为:
-------值传递-----
a的值为: 孙悟空
形参值为: 孙悟空孙悟空
实参值为: 孙悟空
-----引用传递-----
a的值为: [1, 2, 3]
形参值为: [1, 2, 3, 1, 2, 3]
实参值为: [1, 2, 3, 1, 2, 3]

3. python函数参数传递机制

  1. 值传递
    所谓值传递,实际上就是将实际参数值的副本(复制品)传入函数,而参数本身不会受到任何影响。
  2. 引用传递
    如果实参的数据类型是可变对象(列表、字典),则函数参数的传递方式将采用引用传递方式。引用传递的底层实现,采用的依然是值传递的方式。

猜你喜欢

转载自www.cnblogs.com/xiaobaizzz/p/12210094.html