函数
- 在Python中,可以使用def关键字来定义函数,函数的命名规则同变量的命名规则一致。
- 函数名后面的圆括号中可以放置传递给函数的参数(相当于数学上说的函数的自变量)。
- 函数执行完成后,我们可以通过return关键字来返回一个值(相当于数学上说的函数的因变量),不带表达式的return相当于返回 None。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
函数的参数
设定默认值:如果在调用函数的时候如果没有传入对应参数的值时将使用该参数的默认值
def(参数1=参数1默认值,参数2=参数2默认值,...参数n=参数n默认值):
function_suite
return [expression]
例:定义三个数相加
def add(a=0,b=0,c=0):
return a+b+c
# 在调用add函数时,未传入的参数默认值为0
add()
add(1,2)
add(1,2,3)
可变参数: 在不确定参数个数的时候,在参数名前加*表示是一个可变参数。
例:定义加法函数
def add(*args):
total = 0
for val in args:
total += val
return total
# 在调用add函数时可以传入0个或多个参数
print(add())
print(add(1))
print(add(1, 2))
print(add(1, 2, 3))
用模块管理函数
在同一个.py文件中定义两个同名函数,由于Python没有函数重载的概念,那么后面的定义会覆盖之前的定义,也就意味着两个同名函数实际上只有一个是存在的。
解决这种命名冲突的办法很简单,Python中每个文件就代表了一个模块(module),我们在不同的模块中可以有同名的函数,在使用函数时,我们通过import关键字导入指定的模块就可以区分到底要使用的是哪个模块的函数。
导入模块函数的方法
方法一:
from 模块名 import 函数名
函数名()
方法二:
import 模块名 as 别名
别名.函数名()
注意:如果将代码写成如下,那么程序中调用的是module2的foo,因为后导入的foo覆盖了之前导入的foo。
from module1 import foo
from module2 import foo
foo()