python 中,函数的参数是在小括号中定义和传递的
传递给函数的参数可以是任意的数据类型,比如:1, “hello”, [] , {“a”: 10}
>>> def foo(x, y): # 定义参数
... print("x 的值是:", x)
... print("y 的值是:", y)
...
>>> foo(2,3) # 传递参数,简称传参
x 的值是: 2
y 的值是: 3
>>>
在定义参数的时候,还可以给它定义一个默认的值,有默认值的参数我们叫它默认参数
>>> def conn_mysql(user, port=3306):
... print(user, port)
...
>>> conn_mysql("root") # 没有给默认参数传值,就使用默认的值 3306
root 3306
>>> conn_mysql("root", 3307) # 给默认参数传值了,就使用传递的值 3307
root 3307
>>>
在上面的例子中 user
被称为位置参数, port
被成为默认参数
定义函数时候,所有的默认参数必须写在所有的位置参数后面,下面是错误示范
def foo(x,y=10,z):
pass
正确的应该是下面这样:
def foo(x, z, d=10, y=10):
pass
当然在调用函数的时候,我们还可以指定某个值给具体的某个参数
>>> conn_mysql(port=3308, user="sahrk")
sahrk 3308
>>>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YWJzvSNw-1615798553245)(assets/image-20200917163933363.png)]
函数中处理的数据,只有使用 return
关键字进行返回,函数外的代码才能使用这个数据
函数可以返回任意数量的任意 Python 的数据对象
>>> def foo():
... n = 3 + 7
... return n # 10
...
>>> n = foo() # n = 10
>>> n
10
>>>
>>> def func():
... return 1, "hello", [1,2], {"a":1}
...
>>> t = func() # 函数的返回值用一个变量接收
>>> t
(1, 'hello', [1, 2], {'a': 1})
>>> n, s, li, dic = func() # n, s, li, dic = (1, 'hello', [1, 2], {'a': 1})
>>> print(n, s, li, dic)
1 hello [1, 2] {'a': 1}
>>>