建设酒店网站ppt模板下载,微信公众号怎么做微网站吗,wordpress双数据库,天津网站建设公司哪家好知乎问题#xff1a;像这个图片里面显示的#xff0c;self.prediction首先声明了下然后下面给出了定义#xff0c;然后optimize又调用这个函数但是没有用self.prediction()这样的方式而是像用变量一样直接用self.prediction#xff0c;,像请教一下这是什么操作#xff1f;…知乎问题像这个图片里面显示的self.prediction首先声明了下然后下面给出了定义然后optimize又调用这个函数但是没有用self.prediction()这样的方式而是像用变量一样直接用self.prediction,像请教一下这是什么操作知乎回答python中变量和函数都不需要提前声明函数直接定义就可以了。这里提前声明不知道是写的人习惯了其它语言还是为了可读性。在python中一切皆对象函数也不例外。因此可以将函数绑定到变量上或者传递使用时后面加上()就可以调用。在下面的方法中self.prediction后面没有加()但是又把它和一个浮点数相加说明此时它的值是一个数字。如果是平常的写法函数对象不可能与数字相加。我推测关键处在prediction定义时的装饰器它可能有类似于property装饰器的作用将self.prediction转化成了一个属性这样不需要加()也可以返回值了。答者补充因为Python语言的动态性在写代码时代码检查工具可能认为self没有这样的属性这时你预先声明了它就不会报错。作者松直python修饰器要理解python的装饰器我们首先必须明白在Python中函数也是被视为对象。函数既然作为一个对象因此1. 其可以被赋给其他变量2. 其可以被定义在另外一个函数内3. 作为参数传递给函数其实它可被视为封装器。也就是说它能够让你在装饰前后执行代码而无须改变函数本身内容。