Python第四天(函数高级)

作者: 我是周先生 | 来源:发表于2017-10-26 17:07 被阅读0次
  • python闭包:
   def inner(b):
       nonlocal a
       a+=b
       return a
   print(a)
   return inner
result_fn=outer(1)(2)
print(result_fn)
  • 装饰器:
    所谓的装饰器,就是不改变原来的函数,再对原函数进行其他的输出操作
    定义一个原函数的装饰函数也就是装饰器
    def zhuang(zz):# 这个函数的参数就代表原函数参数名的意思
    这里的一个函数代表原函数的意思,如果传参数也就是原函数的参数
       print('我是1之前打印的')
       zz()
       print('我是1之后打印的')
       # return foo
   return foo
@zhuang
# 定义一个原函数:
def foo():
   print('我是原函数:1')
foo()
上面定义的是没有参数的装饰器,下面定义一个带参数的装饰器:
on=False
def zhuang_1(zz):
   global on
   if on:
       def foo(a,b):
           num=zz(a,b)
           a=num**2
           return a
       return foo
   else:
       return zz
# 定义原函数:
@zhuang_1
def yhs(a,b):
   return a+b
print(yhs(1,9))

两个装饰器修饰:
def foo(y):
   def yuan():
       print('我是装饰函数1')
       y()
       print('我是装饰函数1')
           # return yuan
   return yuan
def zhuang(yy):
   def zz():
       print('我是外层装饰函数先显示我')
       yy()
       print('我是下面的外层函数最后执行我')
   return zz


@foo
@zhuang
def yuanhanshu():
   print('我就是被修饰的原函数')

yuanhanshu()
  • 迭代器:迭代的含义就是遍历python语法中没有for 循环的等值语句而,for in 语法的内部调用的就是迭代器;
# a=range(10,100)
# for x in a:# 因为python本身没有for循环,底层用的是迭代器
#     print(x)
# 获取迭代器对象就是iter(里面是字符串容器)
it=iter(a)
# print(it)
# 通过迭代器 :迭代器只有一次取一个值直到把容器中中的值取完,报错的时候就停止迭代,不断调用迭代器
v=next(it)
  • 生成器:
    自己对迭代器的理解:
    所谓的跌迭代器就是for in底层调用实现的东西,而学迭代器底层实现的原理的目的就是希望自己
    能够创造出跌代器,能够实现自己想实现迭代而系统迭代器所不能实现的遍历
a='hel'
# for i in a:
#     print(i)
it=iter(a)
# print(it)# 此时生成的是迭代对象
# 然后调用next函数来实现层次遍历
# print(next(it))
def foo(n):
    for i in range(1,n):
        yield i
# print (foo(5))
g=(x+2 for x in foo(10) if x>2 and x%2==0 )# 跌代器的用来生产迭代对象的
print(g)
num=next(g)
print (num)
num=next(g)
print (num)

相关文章

  • Python入门

    Python3教程 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 ...

  • Python第四天(函数高级)

    python闭包: 装饰器:所谓的装饰器,就是不改变原来的函数,再对原函数进行其他的输出操作定义一个原函数的装饰函...

  • Python的高级函数

    Python的高级函数 1. map函数 map(func, *itertables) 对itertables中...

  • python--函数

    python是面向对象的高级语言,函数是高级语言所必须的,所以,来看看函数。函数的定义: 其中:pass是表示不执...

  • 10、Python入门____语法入门(三)

    正文 1、函数 基本上所有的高级语言都支持函数,Python也不例外。Python不但能非常灵活地定义函数,而且本...

  • Python高级函数

    map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此...

  • python高级函数

    1.map()函数 格式:map(func, iter) 说明:1.接收两个参数:一个函数和一个可迭代对象 2...

  • python函数高级

    函数是Python内建支持的一种封装,通过把大段代码拆成函数,就可以把复杂任务分解成简单的任务,这种分解可以称之为...

  • python高级函数

    高级特性 1、集合推到式 列表推导式 语法:[exp for item in collection if c...

  • Python从入门到精通

    Python语法的三个阶段 Python基础语法函数是编程 Python进阶语法面向对象编程 Python高级语法...

网友评论

    本文标题:Python第四天(函数高级)

    本文链接:https://www.haomeiwen.com/subject/ropkpxtx.html