1.作用
解决重复代码
2.定义函数
“def” 关键字来定义函数,函数的命名规则和命名规则是一致的。形如
def varname(参数1.参数2): 函数体
3.函数参数
python中函数的参数可以有默认值。也可以使用可变参数。所以python中不支持函数的重载。因为我们在定义一个函数的时候可以让它有多种不同的使用方式,,如下。
def add(a,b,c): return a+b+c print(add()); print(add(1)); print(add(1,2)); print(add(1,2,3));
上面的函数中的参数我们可以设成变量:如下
def add(*var):
sum=0
for x in var:
sum+=x
return sum
这样设置就可以传入多个参数。
二:模块管理函数模块管理,把函数定义写入一个文件中,该文件就是一个模块,在要用其中的函数时用import来导入。
文件m1.py
def foo():
print('i love you baby')
文件m2.py
def foo():
print('i hate you bitch')
文件test.py
import module1 as m1 import module2 as m2 m1.foo() m2.foo()
此外,如果我们导入的模块除了定义函数之外还中有可以执行代码,那么Python解释器在导入这个模块时就会执行这些代码,事实上我们可能并不希望如此,因此如果我们在模块中编写了执行代码,最好是将这些执行代码放入如下所示的条件中,这样的话除非直接运行该模块,if条件下的这些代码是不会执行的,因为只有直接执行的模块的名字才是"__main__"。
module3.py
def foo():
pass
def bar():
pass
# __name__是Python中一个隐含的变量它代表了模块的名字
# 只有被Python解释器直接执行的模块的名字才是__main__
if __name__ == '__main__':
print('call foo()')
foo()
print('call bar()')
bar()
test.py
import module3 # 导入module3时 不会执行模块中if条件成立时的代码 因为模块的名字是module3而不是__main__



