Python学习教程之函数调用知识

153 阅读3分钟

Python

语法简洁、功能强大,是人工智能与科学运算的首选编程语言。有很多人想要学习
Python
,但却在接触其繁杂的知识点时被吓倒。事实上,只要你认真学习、慢慢积累,你就可以学好它。接下来小编就给大家分享
Python
学习教程中函数调用相关的知识点。

函数是组织好的、可重复使用的,用来实现单一或相关联功能的代码段,函数能提高应用的模块性,和代码的重复利用率。调用函数也就是执行函数。如果把创建的函数理解为一个具有某种用途的工具,那么调用函数就相当于使用该工具。

函数调用的基本语法格式如下所示:

[

返回值
] =
函数名
([
形参值
])

其中,函数名即指的是要调用的函数的名称;形参值指的是当初创建函数时要求传入的各个形参的值。如果该函数有返回值,我们可以通过一个变量来接收该值,当然也可以不接受。

需要注意的是,创建函数有多少个形参,那么调用时就需要传入多少个值,且顺序必须和创建函数时一致。即便该函数没有参数,函数名后的小括号也不能省略。

举例:

注意:

1

对于调用空函数来说,由于函数本身并不包含任何有价值的执行代码,也没有返回值,应该调用空函数不会有任何效果。

2)

如果
当初定义该函数为其设置了
2
个参数,因此这里在调用该参数,就必须传入
2
个参数。同时,由于该函数内部还使用了
return
语句,因此我们可以使用
strmax
变量来接收该函数的返回值。

Python

函数调用的方式有四种:

第一种:
#
标准调用
参数按顺序从第一个参数往后排

# -*- coding: UTF-8 -*-

def normal_invoke(x, y):

print "--normal_invoke:--"

print "x is %d" %x

print "y is %d" %y

normal_invoke(1, 2)

运行结果:

--normal_invoke:--

x is 1

y is 2

第二种:
#
关键字调用

def keyword_invoke(x, y):

print "--keyword_invoke--:"

print "x is %d" % x

print "y is %d" % y

keyword_invoke(y=1, x=2)

注意:关键调用从哪开始的,从哪以后都必须使用关键字调用除了
‘*’
收集参数。不能写成这样的:
keyword_invoke(y=1, 2)
,这样就会报错。

运行结果:

--keyword_invoke--:

x is 2

y is 1

第三种:
#
非关键字可变长参数
(tuple)

def normal_tuple_invoke(x, y=2, *values):

print "--normal_tuple_invoke--"

print "x is %d" % x

print "y is %d" % y

for value in values:

print "tuple's value has", value

 
normal_tuple_invoke(1, 3, 'xyz', 123.4)

注意:收集参数
‘*’
当你参数不确定有多少是你可是使用它,他会把不确定的部分存在
values
元组中,当然这个元组名字要看
‘*’
后面跟的是啥了。

运行结果:

--normal_tuple_invoke--

x is 1

y is 3

tuple's value has xyz

tuple's value has 123.4

第四种:
#
关键字可变长参数
(dict)

def keyword_dict_invoke(x, y=2, **value_dict):

print "--keyword_dict_invoke--"

print "x is %d" % x

print "y is %d" % y

for key in value_dict:

print "key is ", key

print "value is ", value_dict[key]

 
keyword_dict_invoke(y=1, x=2, arg2='def', arg1='put at the last')

注意:
**value_dict
传回来的参数以字典:
key-value
的形式存放,单招顺序首先传回来的是:
key
,其次是:
value

运行结果:

--keyword_dict_invoke--

x is 2

y is 1

key is arg1

value is put at the last

key is arg2

value is def

Process finished with exit code 0