(六)函数
6.1 定义函数
def greet_user():
"""显示简单的问候"""
print("Hello")
greet_user()
Hello
函数名greet_user(),紧跟在def greet_user():后面的所有缩进构成了函数体。文档字符串用三个引号括起,用来注释。要使用这个函数,可调用greet_user()函数。
def greet_user(username):
"""显示简单的问候"""
print("Hello, " + username.title() + "!")
greet_user("jesse")
Hello, Jesse!
调用带参数的greet_user()函数。
6.2 默认值
在编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。
def describe_pet(pet_name,animal_type='dog'):
"""显示宠物的信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + "." )
describe_pet(pet_name = "willie")
I have a dog.
My dog's name is Willie.
def describe_pet(pet_name,animal_type='dog'):
"""显示宠物的信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + "." )
describe_pet(pet_name = "willie",animal_type = "cat")
I have a cat.
My cat's name is Willie.
6.3 导入整个模块
要让函数是可导入的,得先创建模块。模块扩展名为.py的文件,包含要导入到程序中的代码。
先创建一个包含函数make_pizza()的模块。建立pizza.py文件。
def make_pizza(size, *toppings):
"""概述要制作的披萨"""
print("\nMaking a " + str(size) +
"-inch pizza with the following topping :")
for topping in toppings:
print("- " + topping)
接下来,我们在pizza.py所在的目录中创建另一个名为making_pizza.py的文件,这个文件导入创建的模块,再调用make_pizza()两次。
import pizza
pizza.make_pizza(16,'pepperoni')
pizza.make_pizza(12,'mushrooms','green pepers','extra cheese')
Python 读取这个文件时,代码行import pizza让Python 打开文件pizza.py,并将其中的所有函数复制到这个程序中。你只需要,在making_pizza.py中,可以使用pizza.py中定义的所有函数。
Making a 16-inch pizza with the following topping :
- pepperoni
Making a 12-inch pizza with the following topping :
- mushrooms
- green pepers
- extra cheese
6.4 导入特定的函数
你可以导入模块中的特定函数,方法的语句如下:
from module_name import function_name
from module_name import function_0,function_1,function_2
调用多个函数时,用逗号分隔函数名。
6.5 使用as 给函数指定别名、给模块指定别名
如果要导入的函数的名称可能与程序中现有的名称冲突。或者函数的名称太长,可指定简短独一无二的别名————函数的另一个名称。例如:
from pizza import make_pizza as mp
mp(16,'pepperoni')
mp(12,'mushrooms','green pepers','extra cheese')
Making a 16-inch pizza with the following topping :
- pepperoni
Making a 12-inch pizza with the following topping :
- mushrooms
- green pepers
- extra cheese
指定别名是通用语法如下: from module_name import function_name as fn
上述程序,把make_pizza 指定为mp,结果依然正确。
import pizza as p
p.make_pizza(16,'pepperoni')
p.make_pizza(12,'mushrooms','green pepers','extra cheese')
给模块指定别名的通用语法如下: import module_name as mn
6.6 导入模块中的所有函数
使用星号(*)运算符可让Python导入模块中的所有函数。
from pizza import *
make_pizza(16,'pepperoni')
make_pizza(12,'mushrooms','green pepers','extra cheese')
import 语句中的星号让Python 将模块pizza中的每个函数都复制到这个程序文件中。