作者:解琛
时间:2020 年 8 月 24 日
一、编写说明文档
def sum_num(a, b):
""" 求和函数 """
return a + b
help(sum_num)
运行结果如下。
Help on function sum_num in module __main__:
sum_num(a, b)
求和函数
(END)
按 q
键退出。
二、不定长参数
2.1 元组传递
def user_info(*args):
print(args)
user_info('jerome')
user_info('jerome', 18)
运行结果如下。
('jerome',)
('jerome', 18)
传进的所有参数都会被 args 变量收集,它会根据传进参数的位置合并为一个元组 (tuple),args 是元组类型,这就是包裹位置传递。
2.2 字典传递
def user_info(**kwargs):
print(kwargs)
user_info(name='TOM', age=18, id=110)
运行结果如下。
{'age': 18, 'name': 'TOM', 'id': 110}
三、引用(取地址)
python 中,值是靠引用来传递来的。id()
可以输出变量在内存中的地址。
a = 1
b = a
print(id(a))
print(id(b))
运行结果如下。
94139691812248
94139691812248
在函数中地址的变化规律如下。
def test1(a):
print a
print id(a)
a += a
print a
print id(a)
# int:计算前后 id 值不同;
b = 100
test1(b)
# 列表:计算前后 id 值相同;
c = [11, 22]
test1(c)
运行结果如下。
100
10917664
200
10920864
[11, 22]
140348369967496
[11, 22, 11, 22]
140348369967496
四、lambda 函数
def fn1():
return 200
print fn1
print fn1()
fn2 = lambda: 100
print fn2
print fn2()
直接打印 lambda 表达式,输出的是此 lambda 的内存地址。
<function fn1 at 0x7fcdb9461ea0>
200
<function <lambda> at 0x7fcdb7bab6a8>
100