传递任意数量的实参

形参前加一个 * ,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语句放在文件开头,唯一例外就是文件开头使用了注释来描述整个程序。

最新文章

  1. dagger2记录篇
  2. Visual Studio 使用Web Deploy 3.6发布项目
  3. Bug修正
  4. Mysql事务,并发问题,锁机制
  5. python3 字符串方法(1-15)
  6. copy
  7. 浅谈iOS中的视图优化
  8. matlab mse函数
  9. IBM芯片新功能:诊断癌症
  10. [转载] java的动态代理机制详解
  11. JavaScript设计模式之一封装
  12. textCNN原理
  13. Go之十大经典排序算法
  14. 【C#加深理解系列】(一)反射
  15. rest_framework_extensions实现缓存
  16. 关于Eclipse新建Dynamic Web Projecj默认未创建web.xml的问题
  17. 第一章-Javac编译器介绍
  18. 命令行启用IIS Express
  19. C语言中将0到1000的浮点数用强制指针类型转换的方式生成一幅图像
  20. web项目打包后在代码中获取资源文件

热门文章

  1. 用户画像(User Profile)
  2. 02-线性结构3 Reversing Linked List (25 分)
  3. mysql 通配符%以及_
  4. Jmeter(四十一)_图片爬虫
  5. intellij ide 集成cmder
  6. [C++] explicit关键字使用方法
  7. 2019软工实践_Alpha(事后诸葛亮)
  8. 忘记zip密码咋办?python在手密码我有
  9. ES 基本用法
  10. 【mybatis源码学习】mybatis的插件功能