一 . 第一类对象

函数对象可以像变量一样进行赋值 , 还可以作为列表的元素进行使用

可以作为返回值返回 , 可以作为参数进行传递

def func():

def people():

print('金_卡戴珊')

print('oh,yes!')

print('oh,baby!')

return people

ret = func()

ret()

二 . 闭包

闭包 -> 函数的嵌套

内层函数对外层函数中的变量的使用

好处:

1. 保护变量不被侵害

2. 让一个变量常驻内存

如何通过代码查看一个闭包

__closure__: 有东西就是闭包. 没东西就不是闭包

def wrapper():

name = "周杰伦" # 局部变量常驻与内存

def inner():

print(name) # 在内层函数中使用了外层函数的局部变量

print(inner.__closure__) # 有东西就是闭包

return inner # 返回函数名

# inner()

ret = wrapper() # ret是一个内层函数

ret() # ret是inner, 执行的时机是不确定的, 必须保证里面的name必须存在

三 . 迭代器

迭代器 -> 固定的思路. for循环

一个数据类型中包含了__iter__函数表示这个数据是可迭代的

dir(数据): 返回这个数据可以执行的所有操作

判断迭代器和可迭代对象的方案(野路子)

__iter__ 可迭代的

__iter__ __next__ 迭代器

lst =['吴彦祖','谢霆锋','阿汤哥','郭达','岳云鹏']

it = lst.__iter__()

print(it.__next__())

print(it.__next__())

print(it.__next__())

print(it.__next__())

print(it.__next__())

print(it.__next__())

判断迭代器和可迭代对象的方案(官方)

from collections import Iterable, Iterator

isinstance(对象, Iterable) 是否是可迭代的

isinstance(对象, Iterator) 是否是迭代器

lst = [1,2,3]

# print(lst.__next__())

print(isinstance(lst, Iterable)) # xxx是否是xxx类型的. True

print(isinstance(lst, Iterator)) # False

it = lst.__iter__() # 迭代器一定可迭代, 可迭代的东西不一定是迭代器

print(isinstance(it, Iterable)) # xxx是否是xxx类型的. True

print(isinstance(it, Iterator)) # True

模拟for循环

lst = ["海尔兄弟", "阿童木", "葫芦娃", "舒克贝塔", "大风车"]

# 模拟for循环 for el in lst:

it = lst.__iter__() # 获取到迭代器0

while 1: # 循环

try: # 尝试

el = it.__next__() # 那数据

print(el)

except StopIteration: # 出了错误, 意味着数据拿完了

break # 结束循环

python函数名与变量名可以一样吗_python--第一类对象,函数名,变量名相关推荐

  1. python变量名可以用下划线开头吗_python以下划线开头的变量和函数的作用

    在python中,我们经常能看到很多变量名以_下划线开头,而且下划线的数量还不一样,那么这些变量的作用到底是什么? 变量名分类: # 以数字.字母开头: 正常的公有变量名 a = 1 def aa() ...

  2. python变量如何用循环定义_Python学习日记1(变量定义,分支,循环)

    学习历程按照Github上jackfrued的100天学习python的进度来进行,再辅上一些自己查找的相关资料. 对应传送门:https://github.com/jackfrued/Python- ...

  3. python中表达式4**0.5的值为_Python内置函数__用来返回序列中的最小元素

    [填空题]表达式 int(4**0.5) 的值为 [判断题]3+4j不是合法的Python表达式. [填空题]已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为 [填 ...

  4. python内置函数可以返回序列中的最大元素_Python内置函数__用来返回序列中的最小元素...

    [判断题]不可以在同一台计算机上安装多个Python版本. [判断题]Python是一种跨平台.开源.免费的高级动态编程语言. [填空题]假设列表对象aList的值为[3, 4, 5, 6, 7, 9 ...

  5. python内置函数next()用来返回文件下一行_Python内置函数 next的具体使用方法

    Python 3中的File对象不支持next()方法. Python 3有一个内置函数next(),它通过调用其next ()方法从迭代器中检索下一个项目. 如果给定了默认值,则在迭代器耗尽返回此默 ...

  6. python函数可以作为容器对象吗_正确理解Python函数是第一类对象

    正确理解 Python函数,能够帮助我们更好地理解 Python 装饰器.匿名函数(lambda).函数式编程等高阶技术. 函数(Function)作为程序语言中不可或缺的一部分,太稀松平常了.但函数 ...

  7. 正确理解Python函数是第一类对象

    正确理解 Python函数,能够帮助我们更好地理解 Python 装饰器.匿名函数(lambda).函数式编程等高阶技术. 函数(Function)作为程序语言中不可或缺的一部分,太稀松平常了.但函数 ...

  8. python中的object是什么意思_Python函数是所谓的第一类对象(First-Class Object)是什么鬼?...

    之前写过一篇关于装饰器的文章,虽然写得还算不错,但是也有不少同学表示没看懂,我大概分析了其中的原因,主要问题是他们不理解函数,因为Python中的函数不同于其它语言. 正确理解 Python函数,能够 ...

  9. 指向常对象的指针变量

    //首先了解指向常变量的指针变量,然后再进一步研究指向常对象的指针变量. //定义一个指向常变量的指针变量ptrconst char * ptr; //定义指向常变量的指针变量的一般形式为const ...

最新文章

  1. 首次使用mysql_mysql的初次使用操作
  2. Tokyo Tyrant(TTServer)系列(三)-Memcache协议
  3. DL之CNN:基于CRNN_OCR算法(keras,CNN+RNN)利用数据集(torch,mdb格式)训练来实现新图片上不定长度字符串进行识别—训练过程
  4. API网关正在经历身份危机
  5. [资源分享] TensorFlow 官方中文版教程来了
  6. 云+X案例展 | 民生类:浪潮云打卡人间仙境张家界
  7. 程序员过端午的正确姿势,一般人看不懂
  8. 华为云ModelArts 2.0全面升级,革新传统AI开发模式
  9. Spark MLlib中的协同过滤
  10. poj2485poj2395 kruskal
  11. 侍魂胧月传说显示服务器未开启,侍魂胧月传说打开游戏黑屏怎么办 黑屏相关问题解答...
  12. Visio主题与样式
  13. 简单地图的实现Android,android开发一:高德地图的简单制作
  14. Eclipse配置android开发环境详解
  15. 设置定时器,持续调用接口
  16. (一)AC6(System Workbench for STM32)简单介绍及创建一个简单的STM32的工程
  17. 基于HSV颜色空间的辅助车牌定位
  18. 柱状图中最大的矩形多种解法
  19. 多张照片怎么做成动图
  20. 【零基础小白的华丽蜕变】Oracle WebLogic Server 14c(14.1.1.0)下载及安装

热门文章

  1. 面向对象分析的三个模型与5个层次
  2. 二、【List、Set、数据结构、Collections】
  3. 无线连接 服务器,服务器无线远程连接
  4. go mongodb排序查询_《MongoDB》day two
  5. bat 发送post请求_get post 请求
  6. 【Python基础入门系列】第05天:Python函数
  7. GitHub+Hexo搭建自己的Blog之-本地环境部署01
  8. opencv3/C++ 机器学习-SVM应用实例:药品(胶囊)识别与分类
  9. 如何防止头文件被重复包含或引用?
  10. 动易sitefactory 数据库 mysql msssql_动易SiteFactory配置文件(web.config)常用配置节解读...