在python里,对象就是变量,对象其实是一个指针,指向一个数据结构,数据结构里有属性,有方法。

def now():print('2015-3-25')
f = now
print(f.__name__)
print(f.c)

变量后面跟一个小数点,小数点后面就是它的属性或方法,带括号的是方法,不带的就是属性。

python中,函数也是一个对象,而且函数对象可以被赋值给变量。

现在来看下python的@语法,或称为装饰器(decorator)

def log(func):#再定义一个函数,只是这个函数的返回值是一个函数,或者可以认为这个函数返回了一个指针,这个指针指向函数wrapperdef wrapper(*args, **kw):print('call %s():' % func.__name__)return func(*args, **kw)return wrapper
@log
def now():print('2015-3-25')
f = now()#call now():#2015-3-25

把@log放到now()函数的定义处,相当于执行了语句,log(now),那这个是怎么执行的呢?

1. 把对象now当成入参传入函数log()

2. 执行return wrapper语句

3. 执行函数 wrapper(),根据函数 wrapper定义可看出此函数接受任意类型入参,

3.1 执行print('call %s():' % func.__name__)语句,此时func代表的是主函数log(now)的入参对象now, 所以此处会打印对象

now的属性name= now

3.2 执行func(*args,**kw)=now(*args,**kw),y因为现在没有传参数进来,就是执行now(),

3.3 执行函数now(),print('2015-3-25')

python 对象是什么概念相关推荐

  1. python类装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  2. python+[:]+切片_我从C ++到Python的方式:概念上的改变

    python+[:]+切片 by asya f 由asya f 我从C ++到Python的方式:概念上的改变 (How I went from C++ to Python: a conceptual ...

  3. python里类的概念

    Python编程中类的概念可以比作是某种类型集合的描述,如"人类"可以被看作一个类,然后用人类这个类定义出每个具体的人--你.我.他等作为其对象.类还拥有属性和功能,属性即类本身的 ...

  4. python装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  5. Python基础知识及概念

                                        Python基础知识及概念 1.     注释 单行注释 #这是一个单行注释  ·       在程序开发时,同样可以使用 #  ...

  6. python中变量,python中变量的概念

    python中变量的概念 在python中,变量就是一种标识符, 它是数据的名字,更专业的理解,变量是内存中数据的引用, 编程语言里的变量和初中学习代数时的方程变量很相似. 前面学习数字类型,bool ...

  7. python中对象的概念是什么_python面向对象编程的基本概念

    作者|HIMANSHI SINGH 编译|VK 来源|Analytics Vidhya 介绍 在学习面向对象编程时,我决定深入研究它的历史,结果发现它很迷人.术语"面向对象编程"( ...

  8. python语句命令的概念_Python学习笔记1-基础概念

    1. 库 库:Python的一个一个的项目 标准库:Python安装时自带的库 第三方库:所有pythoner开发经过审核后作为第三方库 自己写的库:项目名 2. 包 2.1. 包的概念 包是一个有层 ...

  9. python元类的概念_Python中的元类编程 | 学步园

    过去有这样的概念,一直没有深究它的意义.今天同事问到,刚好也好好了解下. #===============================================Python中的元类编程=== ...

  10. python基础知识面试题-python的一些基本概念知识和面试题

    对于机器学习算法工程师而言,Python是不可或缺的语言,它的优美与简洁令人无法自拔.那么你了解过Python编程面试题吗?从Python基础到网页爬虫你是否能全方位Hold住?今天,机器之心为读者们 ...

最新文章

  1. java search 不能使用方法_elasticsearch(七)java 搜索功能Search Request的介绍与使用...
  2. 名称空间与作用域、闭包函数、 装饰器
  3. 人生苦短,我学python之python+selenium select下拉框
  4. 在桌面应用中使用JAVA DB[组图]
  5. 2017.2.27自测
  6. Docker监控:基于阿里云容器服务构建自己的Docker监控框架
  7. Html5游戏开发-145行代码完成一个RPG小Demo
  8. TensorFlow基础篇(六)——tf.nn.max_pool()和tf.nn.avg_pool()
  9. java web 调度_javaweb车辆调度信息管理平台
  10. 2016年1月19日 video.js修改视频源后再调用
  11. c语言json配置文件linux,Linux C 编程——使用json-c库读取json格式的配置文件
  12. 联想Y9000P安装Ubuntu20.04记录
  13. 计算机无法安装蓝牙驱动,W7系统蓝牙驱动安装失败的原因分析与解决方法
  14. 宽带噪声干扰 matlab,噪声干扰信号及Matlab仿真.doc
  15. LayaBox---知识点
  16. 蓝本蓝科技:社群变现的模式有哪些?
  17. 90岁的褚时健退休了,我们能够从褚老身上学到些什么?
  18. 【面试】计算机操作系统
  19. 计算机网络物理层测试2
  20. 国内10个最佳PS教程网站

热门文章

  1. Android MVVM开发框架
  2. 【JanusGraph入门】(第一天,下载项目)
  3. 浅谈SmartImageView
  4. React项目以及降级兼容IE低版本
  5. SAE J1939协议(二)
  6. BN层(Pytorch)
  7. 国际学术期刊会议大排名与常用的期刊会议名字
  8. macbook关闭镜像_如何在关闭时让MacBook保持清醒状态
  9. secoclient-linux-64 安装与卸载
  10. 搭建MySQL可视化Web界面服务器