首页 > 编程语言 >Python中函数或者类对象带()与不带()的区别——闭包和函数返回时的常见现象

Python中函数或者类对象带()与不带()的区别——闭包和函数返回时的常见现象

时间:2022-08-30 16:46:25浏览次数:75  
标签:闭包 不带 函数 括号 Python 对象 实例 内存地址

Python中函数或者类对象带()与不带()的区别-----闭包和函数返回时的常见现象

- 函数不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不需等该函数执行完成,返回一个已定义函数(def....)

- 函数带括号(此时必须传入需要的参数),调用的是函数的return结果,需要等待函数执行完成的结果,返回的就是一个具体的结果了(可以是无参数的输出,也可以是代入参数后运算的结果)

类对象也是同样的意思,类对象不带括号我们叫赋值,带括号我们叫实例化。

什么是赋值呢?

最直接的一个例子

image

可以看出a,b的内存地址都是相同的,都是指向一个内存地址

所以对于类对象或者函数对象如果不加括号---也即赋值(效果如下)

image

可以看到由于是赋值的结果a类对象与b对象都是一样的内存地址,a和b打印结果也一样

什么是实例化呢?

一般认为“类提供默认行为,是实例的工厂”也就是说类相当于一个模具,实例就相当于某个产品,所以实例化就相当于从工厂的模具中生产一个个具体的产品,然后我们就可以拿到这些有作用的产品来实现其他各种各样的操作

所以对于类对象或者函数对象如果加括号---也即实例化(效果如下)

image

可以看到由于是实例化的结果a类对象与b对象的内存地址存在差异,系统为实例化对象重新分配了新的内存地址,a和b打印结果都不一样

经过以上对比可以看出带与不带括号()是存在很大差别的

参考连接:
https://blog.csdn.net/s1156605343/article/details/104275730
https://blog.csdn.net/zhangvalue/article/details/93637006

标签:闭包,不带,函数,括号,Python,对象,实例,内存地址
From: https://www.cnblogs.com/li-jian-Lee/p/16629345.html

相关文章

  • 3 个你不知道的 Python 库
    3个你不知道的Python库Python是那些从世界各地获得巨大贡献的社区之一,并且有一个我们不知道的无可挑剔的集合。让我们深入挖掘并了解三个新的python库。人脸识别......
  • 高斯超几何函数如何运作(数学)
    高斯超几何函数如何运作(数学)Photoby乔什·皮福德on不飞溅计算合流和高斯超几何函数的数值方法(arXiv)作者:约翰·W·皮尔逊,希恩·奥尔弗,梅森·波特抽......
  • python压缩pdf(指定缩放比例)
    python压缩pdf(指定缩放比例)原理pdf文件处理使用https://pymupdf.readthedocs.io/en/latest/index.html库可以轻松实现,该库的官方说明文档见https://pymupdf.readthedo......
  • Python学习笔记:add、sub、mul、div、mod、pow
    一、介绍add()函数用于向调用者添加对象。使用语法为:DataFrame.add(other,axis='columns',level=None,fill_value=None)实际上等价于dataframe+other的直接使......
  • 2022 IEEE 编程语言榜单发布!Python 又双叒叕霸榜了,学 SQL 工作更吃香!
    哈喽兄弟们!近年来,Python宛如一匹黑马,一骑绝尘,横扫TIOBE、StackOverflow等榜单,如今在IEEESpectrum发布的第九届年度顶级编程语言榜单中,Python依然是C、C++......
  • python自学笔记10:while循环和for循环
    条件控制和循环控制是两种典型的流程控制方法,前面我们写了if条件控制,这节讲for循环和while循环。循环是另一种控制流程的方式,一个循环体中的代码在程序中只需要编......
  • python安装
    首先我们需要下载python的环境这里我们去官网进行下载WelcometoPython.org  这里我们选择最新的版本进行安装,下载完成后打开可以看见以下的界面,这里我们自定义安装......
  • seurat单细胞数据分析实现 DimHeatmap函数
     上游分析:https://www.jianshu.com/p/4f7aeae81ef1001、cell<-pbmc[["pca"]]@cell.embeddingscell<-cell[order(cell[,1],decreasing=T),]cell<-rownames(......
  • 作用域与立即执行函数
    应用场景:改变变量作用域;上述代码就是改变变量作用域,一个很好的例子。封装临时变量;加载只需要执行一次的代码,比如显示时间。这些代码也需要一些临时的变......
  • 《深度学习入门:基于Python的理论与实现》PDF高清中文版
     《深度学习入门:基于Python的理论与实现》PDF高清中文版免费下载地址 内容简介  · · · · · ·本书是深度学习真正意义上的入门书,深入浅出地剖析了深......