1. 判断函数是否可调用

>>> import math
>>> x = 1
>>> y = math.sqrt
>>> callable(x)
False
>>> callable(y)
True

注意 函数callable在Python 3.0中不再可用,需要使用表达式hasattr(func,  __call)__代替。

2. 函数(或类)解释

1)函数注释,以"#"开头注释

2)文档字符串,如果在函数的开头写下字符串,它就会作为函数的一部分进行存储,这称为文档字符串。

def square(x):
'Calculates the square of the number x'
return x*x >>> square.__ doc__
'Calculates the square of the number x' >>> help(square)
Help on function square in module main: square(x)
Calculates the square of the number x.

3. 函数参数的传递方法

1)按函数参数顺序传递

def hello(greeting, name):
return "%s,%s"%(greeting, name)
>>> hello('Hello', 'World')
Hello, World

2) 使用关键字和默认值

def hello_1(greeting = 'Hello', name = 'World'):
print '%s, %s'%(greeting, name) >>>hello_1(name='Mei')
Hello, Mei
def hello_2(greeting, name = 'World'):
print '%s, %s'%(greeting, name) >>> hello_2('Hi')
Hi, World

3) 参数个数不定

def print_params(*params):
print params >>>print_ params('Testing')
('Testing',)
>>> print_params(1, 2, 3)
(1, 2, 3)

从上面的例子可以看出,打印的为元组。若与普通参数联合使用

def print_ params_2(title, *params):
print title
print params >>> print_params_2(’Params:’ 1, 2, 3)
Params:
(1, 2, 3)
>>> print_params_2(’Nothing:’ )
Nothing:
()

但是不能处理关键字

>>>print_params_ 2('Hmm...’,something=42)
Traceback (most recent call last):
File "<pyshell#60>",line 1, in?
print_params_ 2('Hmm...‘,something=42)
TypeError: print_params_2() got an unexpected keyword argument 'something'

4) 参数个数不定,且能处理关键字

def print_ params_3(**params):
print params >>> print_params_ 3(x=1, y=2, z=3)
{'z': 3, 'x': 1, 'y': 2}

返回的是字典

综上所有参数传递的方法,放在一起使用

def print_ params_4(x, y, z=3, *pospar, **keypar):
print x, y, z
print pospar
print keypar >>> print_params少(1, 2, 3, 5, 6, 7, foo=l, bar=2)
1 2 3
(5, 6, 7)
{foo:1, 'bar': 2}
>>> print_params_4(1, 2)
1 2 3
()
{}

Python学习总结18:函数 参数篇的更多相关文章

  1. Python学习6.1_函数参数及参数传递

    大多数编程语言都绕不开一个名词,那就是--函数(function).而函数很重要的部分则是参数(arguments)的使用.Python的参数传递总体来说是根据位置,传递对应的参数.阐述如下: 1.位 ...

  2. python学习笔记:函数参数

    1. 位置参数:一般的参数 2. 默认参数: def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s 参数里有默认赋 ...

  3. Python学习手册之 Python 之禅、Python 编程规范和函数参数

    在上一篇文章中,我们介绍了 Python 的正则表达式使用示例,现在我们介绍 Python 之禅. Python 编程规范和函数参数.查看上一篇文章请点击:https://www.cnblogs.co ...

  4. python学习之路网络编程篇(第四篇)

    python学习之路网络编程篇(第四篇) 内容待补充

  5. Python学习之not,and,or篇

    Python学习之not,and,or篇 运算符示意 not –表示取反运算. and –表示取与运算. or –表示取或运算. 运算符优先级 not > and > or. 举例如下: ...

  6. python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)

    1.函数 2种编程方法 关键词面向对象:华山派 --->> 类----->class面向过程:少林派 -->> 过程--->def 函数式编程:逍遥派 --> ...

  7. python学习笔记(3)--函数、参数、变量、递归

    1.函数基本语法和特性 背景摘要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏出了所有的知识量吗,写出了以下代码 whi ...

  8. python学习之【第十篇】:Python中的内置函数

    1.前言 内置函数,就是Python内部预先定义好的函数,可以直接使用,Python中内置函数有以下这么多个: 2.map() 描述: map() 会根据提供的函数对指定序列做映射.第一个参数 fun ...

  9. Python学习笔记7-把函数当参数传递、指定可变参数

    把函数当参数传递 # 函数参数传递 # 面向对象编程就是把对象传来传去 # 面向函数编程就是把函数传来传去 def mytest(num): return num * 2 # # 不光可以传递变量,还 ...

随机推荐

  1. 帝国CMS备忘

    一. 2级导航: 类似下图这种导航: 实现方式如: 1. 定义一个标签模板,记住ID,具体内容如: 页面模板内容: <li><a href=”[!—bclassurl—]”>[ ...

  2. caption,为表格增加标题和摘要

    格式: <table summary="***"> <caption>***</caption> <tr> </tr> ...

  3. JQuery 内容过滤选择器

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. SSH验证原理

    http://www.tuicool.com/articles/qyiyim 下面会讲解ssh的密码登陆和免密码登陆.无论是密码登陆还是免密码登陆,安全使用的都是RSA非对称加密. SSH之所以能够保 ...

  5. ASIHTTPRequest实现https双向认证请求

    什么是双向认证呢?简而言之,就是服务器端对请求它的客户端要进行身份验证,客户端对自己所请求的服务器也会做身份验证.服务端一旦验证到请求自己的客户端为不可信任的,服务端就拒绝继续通信.客户端如果发现服务 ...

  6. LeetCode Compare Version Numbers

    原题链接在这里:https://leetcode.com/problems/compare-version-numbers/ 用string.split()方法把原有string 从小数点拆成 str ...

  7. Tuning SQL via case when statement

    原SQL如下:SQL的主要问题是红色部分居然通过标量查询,反复的查找与SQL相同的基表,很显然这个可以用case when来简化. select a.TRAN_ID,a.AMOUNT,a.BALANC ...

  8. 与(and)&&

    /与(and)&& var box = (5>3)&&(4>3); alert(box); //true 如果脸变的操作数有一个操作数不是boolean值得 ...

  9. Linux就这个范儿 第18章 这里也是鼓乐笙箫 Linux读写内存数据的三种方式

    Linux就这个范儿 第18章  这里也是鼓乐笙箫  Linux读写内存数据的三种方式 P703 Linux读写内存数据的三种方式 1.read  ,write方式会在用户空间和内核空间不断拷贝数据, ...

  10. IntelliJ IDEA 自动导入包 快捷方式

    idea可以自动优化导入包,但是有多个同名的类调用不同的包,必须自己手动Alt+Enter设置 设置idea导入包 勾选标注 1 选项,IntelliJ IDEA 将在我们书写代码的时候自动帮我们优化 ...