码迷,mamicode.com
首页 > 编程语言 > 详细

Python函数---王伟---2020-01-06

时间:2020-01-06 13:01:32      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:它的   class   系统   获取   __iter__   装饰器   改变   __next__   +=   

Python函数

匿名函数lambda
#语法:(lambda 参数(形参) : 返回值)(实参)
闭包
#1.闭包:将函数作为返回值返回
#2.通过闭包可以创建一些只有当前函数能访问的变量
#3.可以将一些私有的数据藏到的闭包中
迭代器
#1.可迭代对象:含有__iter__()方法的对象,可迭代的对象:str,list,tuple,dict,set,文件对象

#2.迭代器:含有__iter__()和__next__()方法
a.对于可迭代对象,通过__iter__()方法或者iter()可以返回一个迭代器对象
b.可以通过__next__()方法和next()获取迭代器下一个元素
装饰器
#装饰器:再不改变函数源码的前提下对函数功能进行拓展

帮助函数

dir
dir([object])
#1.如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表
#2.dir()对不同的对象行为会不同
如果对象是模块对象,则列表包含模块的属性名称
如果对象是类型或类对象,则列表包含它们的属性名称,并且递归查找所有基类的属性
否则,列表包含对象的属性名称,它的类属性名称,并且递归查找它的类的所有基类的属性
help
help([object])
#1.启动内置的帮助系统
#2.如果实参是一个字符串,则在模块、函数、类、方法、关键字或文档主题中搜索该字符串,并在控制台上打印帮助信息
type
class type(object)
class type(name, bases, dict)
#传入一个参数时,返回object的类型。 返回值是一个type对象,通常与object.__class__所返回的对象相同
相关代码
#1.匿名函数
def sum(a,b):
    return a + b
sum(10,20)
#简写
a = (lambda a,b : a + b)(10,20)
print(a)

#2.闭包
def function():
    def sum(*args):
        result = 0
        for i in args:
            result += i
        return result
    return sum
result = function()
print(result(1,2))

#3.迭代器
list1=[1,2,3,4,5,6,7,8]
print(dir(list1))


list1=[1,2,3,4,5,6,7,8]
list2=list1.__iter__()#迭代器
print(list2.__next__())
print(list2.__next__())
print(dir(list2))

#4.装饰器
def sum(a,b):
    result = 0
    result = a + b
    print(result)
#a.现需增加提示之行开始,之行结束功能
def new_func(old):
    def func_add(*args,**kwargs):
       
        print("函数开始执行....")
        old(*args,**kwargs)
        print("函数执行结束....")
    return func_add
f = new_func(sum) 
f(2,3) 

@new_func 
def fun():
    print("hello")
fun()

'''
def new(old):
    def new_function(*args,**kwargs):
        print("=======")
        old(*args,**kwargs)
        print("-------")
    return new_function

@new
@new_func
def func():
    print("python")
func()
'''

Python函数---王伟---2020-01-06

标签:它的   class   系统   获取   __iter__   装饰器   改变   __next__   +=   

原文地址:https://www.cnblogs.com/niaocaizhou/p/12155644.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!