常规定义函数:
def fun():
pass
笔记
传参相关
# 入参定义为不可变量
def func1(a=None):
a = []
a.append('test')
return a
# 入参定义为可变量
def func2(a=[]):
a.append('test')
return a
# 调用2个函数
func1()
['test']
func1()
['test']
func2()
['test']
func2()
['test', 'test']
# 传多个参数
def func(*a):
return a # a的type是tuple
# 调用
# 1
func(1,2)
(1, 2)
# 2
num = [1, 2, 3]
func(*num)
(1, 2, 3)
# 传字典
def func3(**kw):
print(kw)
print(type(kw))
# 调用
func3()
{}
<class 'dict'>
func3(a=1)
{'a': 1}
<class 'dict'>
func3(a=1, b=2, c=3)
{'a': 1, 'b': 2, 'c': 3}
<class 'dict'>
dict1 = {'a':1, 'b':2}
func3(**dict1)
{'a': 1, 'b': 2}
<class 'dict'>
# 传固定字典,固定名称为a,b,前面需要用*分割
def func4(*, a, b):
print(a)
print(b)
# 调用
# 1、不填固定key值,报错
func4(1, 2)
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2024.1.4\plugins\python-ce\helpers\pydev\pydevconsole.py", line 364, in runcode
coro = func()
^^^^^^
File "<input>", line 1, in <module>
TypeError: func4() takes 0 positional arguments but 2 were given
# 2、不填全部key值,会报错
func4(a=1)
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2024.1.4\plugins\python-ce\helpers\pydev\pydevconsole.py", line 364, in runcode
coro = func()
^^^^^^
File "<input>", line 1, in <module>
TypeError: func4() missing 1 required keyword-only argument: 'b'
# 3、填了全部key值,正常输出
func4(a=1, b=2)
1
2