函数基础
函数也叫做方法,是实现特定功能的一坨代码。
可以把这坨代码封装成一个函数,然后去调用就可以了,这样可以提高代码的复用性。
函数必须调用才会执行。
定义函数
import json
def get_file_content(filename):
"""
这里是 docstring,函数的说明文档
:param filename:文件名(参数的说明)
:return:返回文件内容(返回值的说明)
"""
with open(filename, encoding='utf-8') as f:
res = json.load(f) # 转成字典
return res # 返回值
定义函数时,要注意的地方:
- 以关键字
def
开头 - 参数放在圆括号里
- 可以选择性的使用 docstring 存放函数说明
- 使用 return 结束函数,默认返回 None
return语句
一旦函数执行过程遇到return语句,那么之后函数体内的所有代码都会被忽略,直接跳出函数体。
return 可以返回什么?
- 什么都不返回,只 return:
return
- 数字/字符串/任意类型:
return 'hello'
- 表达式:
return 1+2
- 判断语句:
return 1>2
- 变量:
return a
- 函数:
return function()
- 返回自己:
return self
- 返回多个值:
return 1+2, a, 'hello'
调用函数
- 要调用一个函数,必须使用函数名后跟圆括号的方式才能调用函数
- 提供相应个数和类型的参数,每个参数之间用逗号分隔
get_file_content('product.json')
上面这段代码中:
在定义函数的时候,filename 是个形参。
在调用函数的时候,传的参数是个实参,把 product.json 传给了形参 filename。
如何接受函数的返回值?
- 在调用函数时,可以将函数的返回值保存在变量中,如
a=get_file_content('product.json')
- 如果返回多个值,那么使用对应数量的变量进行接受,如
age, name = get_age_name()
局部变量:在函数里面定义的变量,就是局部变量。 局部变量只能在函数里面使用,在函数外不能使用。
一个函数只做一件事情,一个函数不要写太长。
def write_file(filename, content):
with open(filename, 'w', encoding='utf-8') as f:
json.dump(content, f, indent=4, ensure_ascii=False) # content 写进 f
#f.wrtie(json.dumps(content))
d = {'name':'test', 'sex':'nan'}
write_file('test.json', d) #将字典 d 的内容写进 test.json 文件