0x00定义函数
def echo_hi():
"""打招呼"""
print("Hello!")
echo_hi()
三引号(三个单引号或者双引号)之间的文档字符串,python会为这个函数生成文档
0x01 传参
这里只挑特殊点讲
关键字实参
我们知道传参要注意顺序。但关键字实参可以不在意顺序, btw, 为了美观函数中的默认值和关键字传参等号两边不要带空格哦
def a_function(pl1, pl2):
a_function(pl2='xxx', pl1='yyy')
默认值
和C++一样,懒得写了
0x02 返回值
return, 好像没什么好讲的
0x03 传递列表
就像普通的一样传就行了,值得注意的是,在函数中操作列表会影响到原列表,在不希望原列表被改变的情况下,可以使用以下代码传递列表副本
function_name(list_name[:])
0x04 传递任意数量的参数
一看就懂,代码如下:
def a_function(*pl):
"""传递任意数量的参数"""
a_function("s","u")
python会将其封装到一个元组之中,如:('s', 'u')
结合使用位置实参和任意数量参数
说的就是如果有多个参数,其中有一个是任意数量传参,记得把它放最后面。
使用任意数量的关键字实参
def build_profile(first, last, **user_info):
"""创建一个字典,其中包含我们知道的有关用户的一切"""
profile = {}
profile['first_name'] = first
profile['last_name'] = last
for key, value in user_info.items():
profile[key] = value
return profile
user_profile = build_profile('albert', 'einstein',location='princeton',field='physics')
print(user_profile)
注意上面的形参**user_info有两个星号,两个星号让Python创建了一个空字典
0x05 将函数存储在模块中
模块,看起来就像C++的多文件
导入整个模块
模块大家都知道,但是模块要怎么使用呢,把函数封装在fun.py,然后怎么在main.py导入并使用呢?下面就让小编带大家看看吧!
#main.py
import fun#导入模块
fun.function1()#简单来说,使用模板的函数可以这样moudle_name.function_name()
fun.function2()
导入特定的函数
from fun import function1, function2 #导入特定函数
function1()#这时候就可以直接使用了
function2()
使用as给函数指定别名
from fun import function1 as fun1
fun1()
使用as给模块指定别名
import fun as f
导入模块中的所有函数
from fun import *
这种偷懒的做法其实是不好的,可能带来意想不到的冲突问题