函数的学习3——传递任意数量的实参&将函数存储在模块——参考Python编程从入门到实践
传递任意数量的实参
形参前加一个 * ,Python会创建一个已形参为名的空元组,将所有收到的值都放到这个元组中:
def make_pizza(*toppings):
print("\nMaking a pizza with the following toppings: ")
for topping in toppings:
print("- " + topping) make_pizza('pepperoni')
make_pizza('mushroom', 'green peppers', 'extra cheese')
不管函数收到多少实参,这种语法都管用。
1. 结合使用位置实参和任意数量实参
def make_pizza(size, *toppings):
print("\nMaking a " + str(size) + "-inch pizza with the following toppings: ")
for topping in toppings:
print("- " + topping) make_pizza(16, 'pepperoni')
make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
运行结果:
Making a 16-inch pizza with the following toppings:
- pepperoni Making a 12-inch pizza with the following toppings:
- mushroom
- green peppers
- extra cheese
2. 使用任意数量的关键字实参
def build_profile(first, last, **user_info):
profile = dict()
profile['first_name'] = first
profile['last_name'] = last
for key, value in user_info.items():
profile[key] = value
return profile user_profile = build_profile('albert', 'einstein', location='princeton', field='physic')
print(user_profile)
形参**user_info中的两个星号让python创建了一个名为user_info的空字典。
将函数存储在模块中
将函数存储在称为模块的独立文件中,使用时再将模块导入到主程序中。目的:1. 隐藏程序代码细节;2.重用函数;3.与其他程序员共享这些文件;4.使用其他程序员编写的函数库。
1. 导入整个模块
pizza.py
def make_pizza(size, *toppings):
print("\nMaking a " + str(size) + "-inch pizza with the following toppings: ")
for topping in toppings:
print("- " + topping)
making_pizzas.py
import pizza
pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
即可以使用一下的语法来导入模块并使用模块中的任意函数:
import module_name
module_name.function_name( )
2. 导入特定的函数
from module_name import function_name # 导入模块中一个函数
from module_name import function_0, function_1,,, # 导入模块中的多个函数
eg:
making_pizzas.py
from pizza import make_pizza
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
导入的是函数,调用函数时就无需使用句点。
3. 使用as给函数指定别名
from pizza import make_pizza as mp
mp(16, 'pepperoni')
mp(12, 'mushroom', 'green peppers', 'extra cheese')
给函数指定别名的通用语法:
from modul_name import function_name as fn
4. 使用as给模块指定别名
import pizza as p
p.make_pizza(16, 'pepperoni')
p.make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
给模块指定别名的通用语法:
import module_name as mn
5. 导入模块中的所有函数
from pizza import *
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
导入所有函数的通用语法:
from module_name import *
函数编写指南
1. 函数命名和模块命名:指定描述性名称,且在只其中使用小写字母和下划线。
2. 函数定义后应紧跟注释,用以简要阐述改函数的功能,采用文档字符串格式。
3. 给形参指定默认值和函数调用中的关键字实参,等号两边不用空格。
4.所有程序或者模块包含多个函数时,使用两个空行将相邻的两个函数分开。
5. 所有import语句放在文件开头,唯一例外就是文件开头使用了注释来描述整个程序。
函数的学习3——传递任意数量的实参&将函数存储在模块——参考Python编程从入门到实践的更多相关文章
- 函数的学习1——定义函数&传递实参——参考Python编程从入门到实践
定义函数 def greet_user(): print("Hello") greet_user() # PEP8 函数和类的定义后空两行 1. 向函数传递参数 def greet ...
- 函数的学习2——返回值&传递列表——参考Python编程从入门到实践
返回值 函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值.函数的返回值被称为返回值. 1. 简单的返回值 def get_formatted_name(first_name, l ...
- 字典的学习2——参考Python编程从入门到实践
遍历字典 1. 遍历所有键值对 eg1: user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi',}for key, v ...
- 二、继续学习(主要参考Python编程从入门到实践)
操作列表 具体内容如下: # 操作列表 # 使用for循环遍历整个列表. # 使用for循环处理数据是一种对数据集执行整体操作的不错的方式. magicians = ['alice', 'david' ...
- 字典的学习1——参考Python编程从入门到实践
字典:从汉语词意的角度理解,字典就是一个工具书,可以查找某个字.词.成语等的详细解释,字与解释相对应,而Python中字典则是一些列键和值相对应. Python中,字典放在花括号{键:值}中,eg: ...
- 【Python】向函数传递任意数量的实参
传递任意数量的实参 有时候,你预先不知道函数需要接受多少个实参,好在Python允许函数从调用语句中收集任意数量的实参 def get_letter(*letters): for i in lette ...
- Python 传递任意数量的实参
在定义函数的时候如果你不知道该函数在使用的时候要接收多少的实参怎么办? 好在python提供了可以接收任意数量的实参的操作. # def sandwitch(*ingredents): # print ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- 《Python编程从入门到实践》_第八章_函数
一个简单的函数 先看一个简单的函数 def say_hello(): '''打印hello''' print("Hello!") say_hello() #运行结果 Hello! ...
随机推荐
- 2019-2020-1 20199302《Linux内核原理与分析》第十一周作业
缓冲区溢出 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况.这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段.这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢 ...
- hibernate的API
程序源码: import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transa ...
- siblings() 方法
siblings([selected]) 简介: 给定一个表示一组DOM元素的jQuery对象,该.siblings()方法允许我们在DOM树中搜索这些元素的兄弟节点,并从匹配的元素构造一 ...
- Python 元类使用讲解
我要一大群的类都具有一种特点,我怎么给他们加上呢?模板嘛,我从这个模板创建一群类不就OK了?那就需要元类了. 定义一个元类(就是一个类的模板!莫多想,还要记住这是类级别的,不是对象级别的!):代码如下 ...
- MSSQL手工注入 报错注入方法
例子:www.kfgtfcj.gov.cn/lzygg/Zixun_show.aspx?id=1[1]首先爆版本:http://www.kfgtfcj.gov.cn/lzygg/Zixun_show. ...
- Shiro安全框架-简介
1. 简介 Apache Shiro是Java的一个安全框架.功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案. 实际上,Shiro的主要功能 ...
- SSH框架整合3——原生态SessionFactory
================================================web.xml============================================= ...
- [Beta]第一次 Scrum Meeting
[Beta]第一次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/5/5 22:00 30min 大运村公寓6F寝室 附Github仓库:WEDO 例会照片 工作情况总 ...
- 浅谈SOA面向服务化编程架构(dubbo)
dubbo 是阿里系的技术.并非淘宝系的技术啦,淘宝系的分布式服务治理框架式HSF啦 ,只闻其声,不能见其物.而dubbo是阿里开源的一个SOA服务治理解决方案,dubbo本身 集成了监控中心,注 ...
- IDEA版本控制忽略文件或目录
写在前面 废话不多说了, 新创建了个helloworld, 见图: 这谁受得了啊 修改配置 在上图红框内部的后面添加: *.iml;*.idea;*.gitignore;*.sh;*.classpat ...