这里先解释一下几个概念
- 位置参数:按位置设置的参数,隐式用元组保存对应形参.平时我们用的大多数是按位置传参.比如有函数def func(a,b,c),调用func(1,2,3).即a=1,b=2,c=3
- 关键字参数:可以通过关键字设置参数,不用关心参数位置,隐式用字典保存形参.比如有函数def func(a,b,c),调用func(b=1,c=2,a=3),即a=3,b=1,c=2
普通格式
def func(opt_args):
...
return value
带收集位置参数的函数
格式如下
def func(*params):
...
return value
用法
使用函数时,不用限制传参的个数,*params会自动收集传入的参数作为一个元组.
实例
def func(*params):
print params
a = [1,2,3,4]
b = 'hello'
c = 3
func(a, b, c)
输出
([1, 2, 3, 4], ‘hello', 3)
带收集关键字参数的函数
格式如下
def func(**params):
...
return value
用法
按关键字传参时,**params会自动收集传入的参数作为一个字典.
实例
def func(**params):
print params
func(a=1, b=2, c=3)
输出
{‘a': 1, ‘c': 3, ‘b': 2}
函数特殊用法
默认参数
格式
def func(a = 1, b = 2)
等号(=)号是默认值,调用函数时可以不用传参给默认参数.
实例
def func(a = 1, b = 2):
print a, b
func(a=3)
输出
3 2
函数可以返回多个值
格式
return a, b, c
实例
def func(a = 1, b = 2):
return a, b
print func(a=3)
输出
(3, 2)
内嵌函数和闭包
格式
def foo() #外部函数
def bar() #内嵌函数
....
....
如果内嵌函数引用了外部函数的变量(包括外部函数参数),这个引用的变量称为自由变量, 那么称这个内嵌函数是闭包.再来看看专业的解释:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。
实例
def foo(a, b):
x = 4
def bar():
return x * a + b;
return bar
f1= foo(1, 2)
f2= foo(2, 3)
print f1(), f2()
输出
6 11
传递函数
Python一切皆对象,函数这一语法结构也是一个对象, 可以将函数名作为参数传递
格式
def bar(*param1, **param2):
....
def foo(bar, *param1, **param2):
bar(*param1, **param2)
实例
def bar(*param1, **param2):
print param1
print param2
def foo(bar, *param1, **param2):
bar(*param1, **param2)
foo(bar, 1, 2, 3, a = 111, b = 222, c = 333)
输出
(1, 2, 3)
{‘a': 111, ‘c': 333, ‘b': 222}
匿名函数与lambda
lambda语法可以创建一个匿名的函数,主要作用是简化书写,是一种语法糖.
- 格式
lambda [arg1[, arg2, … argN]] : expression
实例
def foo(x, y):
return x + y
print "call foo function, result is: ", foo(3, 4)
bar = lambda x = 2, y = 3 : x + y
print "call lambda fucntion, result is:", bar(3,4)
输出
call foo function, result is: 7
call lambda fucntion, result is: 7

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

Atom editor mac version download
The most popular open source editor

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),
