自学Python3.3-函数分类(内置函数补充)

自学Python之路-Python基础+模块+面向对象
自学Python之路-Python网络编程
自学Python之路-Python并发编程+数据库+前端
自学Python之路-django

自学Python3.3-函数分类(内置函数补充)

内置函数,自定义函数,匿名函数

内置函数(python3.x)

一、作用域相关

1. globals()  返回全局作用域内所有

2. locals() 返回当前作用域内所有

  • 函数功能返回当前作用域内的局部变量和其值组成的字典,与globals函数类似(返回全局变量)
  • 可用于函数内
  • 返回的字典集合不能修改

二、迭代器/生成器相关 

3. next()     next(迭代器) #相等于 迭代器.__next__()

  • 函数必须接收一个可迭代对象参数,每次调用的时候,返回可迭代对象的下一个元素。如果所有元素均已经返回过,则抛出StopIteration异常。
  • 函数可以接收一个可选的default参数,传入default参数后,如果可迭代对象还有元素没有返回,则依次返回其元素值,如果所有元素已经返回,则返回default指定的默认值而不抛出StopIteration 异常。

4.  iter()    迭代器 = iter(可迭代的) #相等于 迭代器 = 可迭代的.__iter__()

  • 函数功能返回一个迭代器对象。
  • 当第二个参数不提供时,第一个参数必须是一个支持可迭代协议(即实现了__iter__()方法)的集合(字典、集合、不可变集合),或者支持序列协议(即实现了__getitem__()方法,方法接收一个从0开始的整数参数)的序列(元组、列表、字符串),否则将报错。
  • 当第二个参数sentinel提供时,第一个参数必须是一个可被调用对象。创建的迭代对象,在调用__next__方法的时候会调用这个可被调用对象,当返回值和sentinel值相等时,将抛出StopIteration参数必须是一个可被异常, 终止迭代。

 

5.  range()    迭代器 = iter(可迭代的) #相等于 迭代器 = 可迭代的.__iter__()

  • range函数用于生成一个range对象,range类型是一个表示整数范围的类型。 
  • 可以直接传入一个结束整数来初始化一个range类型,默认起始值为0(包含0).结束整数可以大于0,也可以小于等于0,但是小于等于0的时候生成的range对象实际是不包含任何元素的。
  • 可以传入一个起始整数和一个结束整数来初始化一个range类型,生成的range类型包含起始整数(包含),和结束整数(不包含)之间的所有整数。
  • 传入了起始整数和结束整数,还可以同时传入一个步进值来初始化一个range类型,生成的range类型包含起始整数(包含),和结束整数(不包含)之间的以步进值筛选后的整数。
  • 初始化range类型时起始整数和结束整数,遵循的是左臂右开原则,即包含起始整数,但不包含结束整数。
  •  range接收的参数都必须是整数,不能是浮点数等其它数据类型。
  • range实际上是一个不可变的序列类型,可以对它进行取元素、切片等序列操作,但是不能对其中元素修改值。
range(10)
range(1,11)
range(1,11,2)  

 range是一个可迭代的,但不是迭代器。

 

 

六、 其他

 dir 显示函数内置属性和方法

 callable

  • 方法用来检测对象是否可被调用,可被调用指的是对象能否使用()括号的方法调用;
  • 可调用对象,在实际调用也可能调用失败;但是不可调用对象,调用肯定不成功;
  • 类对象都是可被调用对象,类的实例对象是否可调用对象,取决于类是否定义了__call__方法。

 

 

 

 

 help 

 

 

 

 

 

 

  

 

 

.....

 

posted on 2019-03-25 20:06 CARLOS_CHIANG 阅读(...) 评论(...) 编辑 收藏

导航