这一节学习关于 Python 中的函数,肯定会非常有趣。
函数定义
def greet_user(msg):
"""函数的描述"""
print(msg)
greet_user("hello")
- 输出结果是:Hello
- 分析
def 关键字来声明函数,greet_user()表示函数名,msg表示函数的参数,”“”“”“里面的内容表示函数的作用解释
多个参数的位置的顺序确保正确,否则会出现意想不到的错误。
带返回值的函数
def greet_user(first_name, last_name):
"""函数的描述"""
full_name = first_name + ' ' + last_name
return full_name.title()
user_name = greet_user('Aller','Dong')
print(user_name)
- 通过关键字return返回结果
返回一个字典
def greet_user(first_name, last_name):
"""函数的描述"""
person = {'first':first_name,'last':last_name}
return person
person = greet_user('Aller','Dong')
print(person)
- 返回结果
感觉和Java中对象有些相似了…
传递任意数量的实参
def greet_user(*names):
"""函数的描述"""
for name in names:
print(name)
greet_user('AllerDong')
greet_user('Zhangsan', 'Lisi', 'Wangwu')
- 通过*号表示任意数量的参数
将函数存储在模块中
- 导入整个模块
import 模块名称,如在当前目录下创建两个文件,一个是test0.py,一个是test1.py,test0.py的代码如下
def greet_user(*names):
"""函数的描述"""
for name in names:
print(name)
那么在 test1.py 中想使用 test0.py 中的代码可以这么写
import test0
test0.greet_user('AllerDong')
输出结果为:AllerDong,这么做主要是能让代码重用(程序员都比较懒)
导入特定函数
test0.py 不变,修改 test1.py 中的代码为
from test0 import greet_user
greet_user('AllerDong')
二者的区别在于,导入整个模块(import 模块名)后在使用模块中的函数时需要用模块名.函数名的格式取调用,而导入特定函数(from 模块名 import 函数名)就只能使用该函数,模块中的其他函数是用不了的。在使用时直接函数名就可以使用了
使用as给模块起别名
只有我是认为这位大佬是为了偷懒才这么设计的吗?
import test0 as t
t.greet_user('AllerDong')