Python 函数总结

简介:

声明和调用函数:

    声明函数的方法是用def关键字,函数名及小括号里面的参数列表。

def  foo(x):
         print x

    调用函数:给出函数名和一小对括号,并放入所需参数:

#!/usr/bin/env python
import  httplib
def  check_web_server(host,port,path):
    h=httplib.HTTPConnection(host,port)
    h.request('GET',path)
    resp=h.getresponse()
    print  'Http  Response :'
    print '    status = ',resp.status
    print '    resson = ',resp.reason
    print 'Http Headers:'
    for  hdr in resp.getheaders():
        print  '    %s: %s ' % hdr’
执行结果:check_web_server(‘www.python.org’,80,’/’)
Http  Response :
    status =  200
    resson =  OK
Http Headers:
    content-length: 417 
    x-powered-by: PHP/5.3.3-7+squeeze14 
    server: Apache 
    connection: close 
    date: Tue, 19 Feb 2013 02:39:16 GMT 
    content-type: text/html; charset=UTF-8

关键字参数:

    可以省去固定顺序的需要,关键字参数通过 “键=值”的形式指定,例如:

     check_web_server(port=80,path='/',host='www.pyton.org')

默认参数:

    对参数提供默认值,那可以不必向其传递变量值,

比如:
    def  check_web_server(host,port=80,path=’/’)

注意:默认参数和关键字参数区别:

    关键字参数只能用于“函数调用”,默认参数用于“函数声明”;对于默认函数,所有必须提供的参数一定要出现在任何可选参数之前,不能混在一起活着颠倒顺序。

    def  check_web_server(host,port=80,path) 这个是错误的


常见错误:

1、  将列表和字典作为默认参数;

由于列表和字典 都是可变变量,这样的话看哪呢过会很危险,特别是当他们连续的穿过多个函数调用时,

def func(arg=[]):

arg.append(1) print arg func()

[1]

func()

[1,1]

func()

[1,1,1]

函数在对象中的引用:

    在Python 里你可以把函数(或方法)当做和其他对象一样使用,可以放在容器里,赋值给其他变量,做为参数传递给函数等。

    当调用函数的时候才会加上小括号,把它当做变量或者对象传送时,只需要函数名字就可以啦

匿名函数:

创建的方法是使用lambda关键字,它由一个表达式组成,

语法:lambda  args:表达式   执行的时候 lambda 会返回一个可立即使用的函数对象,可以将其保存为一个变量,或者一个回调函数以便稍后执行.

*args  和 **kwargs

    无论是函数调用韩式声明,单个星号表示 有元祖或者列表作为参数,两个星号则代表参数为字典。

函数调用里的 *  和**

def  check_web_server(host,port,path):

将参数信息放到元祖里面:

host_info=(‘www.python.org’,80,’/’)

调用时:

check_web_server(host_info[0],host_info[1],host_info[2])

简洁点的写法:

check_web_server(*host_info)

如果:

host_info={‘host’:’www.python.org’.’port’:80,’path’:’/’}

所以函数调用就变成了:

check_web_server(**host_info)

 

声明函数中的 *  和  **

这个可以让python支持变长参数:

比如:

#!/usr/bin/env python
def daily_sales_total(*all_sales):
    total=0.0
    for each_sale in all_sales:
        total+=float(each_sale)
    print total
if __name__=='__main__':
    daily_sales_total()
    daily_sales_total(10.00)
    daily_sales_total(5.00,1.50,'128.75')

不管传递多少参数,都可以处理,all_sales是一个包含所有元素的元祖,

注意:在函数里定义变长函数时,所有必须出现的参数一定先出现,然后是默认值,最后是变长参数;

使用双星号的方式:

def  check_web_server(host,port,path,*args,**kwargs)

这样将至少接受初始三个参数






本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1135482,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
171 1
|
2月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
269 1
|
2月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
162 0
|
3月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
272 101
|
3月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
214 99
|
3月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
190 98
|
3月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
4月前
|
Python
Python 函数定义
Python 函数定义
522 155
|
5月前
|
PHP Python
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
553 0
|
3月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
650 0

推荐镜像

更多