加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

【Python】python类中方法的预定义

发布时间:2020-12-17 01:23:29 所属栏目:Python 来源:网络整理
导读:像这个图片里面显示的,self.prediction首先声明了下然后下面给出了定义,然后optimize又调用这个函数但是没有用self.prediction()这样的方式而是像用变量一样直接用self.prediction,,像请教一下这是什么操作? 知乎回答: python中变量和函数都不需要提前

像这个图片里面显示的,self.prediction首先声明了下然后下面给出了定义,然后optimize又调用这个函数但是没有用self.prediction()这样的方式而是像用变量一样直接用self.prediction,,像请教一下这是什么操作?



知乎回答:

python中变量和函数都不需要提前声明,函数直接定义就可以了。这里提前声明不知道是写的人习惯了其它语言,还是为了可读性。

在python中一切皆对象,函数也不例外。因此可以将函数绑定到变量上或者传递,使用时后面加上()就可以调用。

在下面的方法中self.prediction后面没有加(),但是又把它和一个浮点数相加,说明此时它的值是一个数字。如果是平常的写法,函数对象不可能与数字相加。

我推测关键处在prediction定义时的装饰器,它可能有类似于property装饰器的作用,将self.prediction转化成了一个属性,这样不需要加()也可以返回值了。

答者补充

因为Python语言的动态性,在写代码时,代码检查工具可能认为self没有这样的属性,这时你预先声明了,它就不会报错。

作者:松直

链接:

python修饰器

要理解python的装饰器,我们首先必须明白在Python中函数也是被视为对象。函数既然作为一个对象,因此:

1. 其可以被赋给其他变量

2. 其可以被定义在另外一个函数内

3. 作为参数传递给函数

其实它可被视为封装器。也就是说,它能够让你在装饰前后执行代码而无须改变函数本身内容。

更多见:



(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读