Python默认类中的绑定方法怎么解除和对象的绑定关系呢

property的使用
property是一个装饰器,可以将类方法转化为类属性的表达。
举个栗子:bmi指数,肥胖指数,很显然,这是一个计算过程,但是在我们人类的认知当中,bmi更应该是一个属性而非方法。
当我们把代码换成:
很明显,很难察觉这到底是执行了一个方法还是调用了一个属性。
绑定方法
一、对象绑定(默认)
绑定方法:
绑定给谁,就由谁来调用,谁来调用就把它当作一个参数自动传入
在python中,凡是类中的方法默认情况都是绑定给对象使用的
我们得到了一段bound method一段文字,这就是绑定方法。这里面的tell_info方法是绑定给对象使用的。
那么,当我们用类来调用该方法呢?会产生怎样的效果?
为了更明显,我们随便定义一个函数来执行一下:
这下很醒目了吧,当类中的方法,用类去调用时,该方法是被当做普通函数来执行,而对象去调用则为绑定方法。对象绑定方法在python是默认的,前两天使用的也都是对象绑定方法,这里就不做演示了。
二、类绑定方法(classmethod)
既然python默认类中的方法或函数,都是绑定给对象使用。那么类中的绑定方法怎么解除和对象的绑定关系,进而绑定到类呢?
小明:“你问我我问谁啊?”
这个时候需要用到classmethod方法,它也是个装饰器。
和对象的绑定方法一样:绑定给类,就由类来调用,并将类作为第一个参数传入;
和对象绑定方法不同在于:当对象在调用类的绑定方法时,也会默认把类当做参数传递进去。
cls和self都是一种命名习惯,cls作为第一个参数来表示类本身,在类方法中用到。
三、类绑定方法示例
例子用的可能过于粗糙,那能怎么办呢,我也是这样学的。。。
非绑定方法
在类中,有很多普通的方法,本身不需要绑定给对象或类来使用,谁都可以调用,没有自动传值效果,这就是非绑定方法。在python中,方法会自动绑定给对象,当我们需要解绑时来形成非绑定方法时,需要用到staticmethod方法,它还是一个装饰器。
给每个人生成一个id号的示例:


华为代工谷歌Nexus 6p曝光:曲线进入美国市场
京东方超越三星,领跑折叠面板市场
金卡智能为海量物联网设备提供兼具低功耗及成本效益的解决方案
康瑞电子告诉您所不知道的连接器的应用
数字化应用中的多核DSP(下)
Python默认类中的绑定方法怎么解除和对象的绑定关系呢
基于英特尔可编程解决方案功能特点与性能
Samtec连接器科普| 您所在的环境对电子设备来说,苛刻吗
AT的新零售暗战,拼购兴起京东杀回C2C
2019年三季度十大半导体公司排行榜公布英特尔位居第一
E现场:小米Mix Alpha——探索,让未来多一种可能
智能台灯语音唤醒芯片,离线语音控制方案,WTK6900H精准识别IC
朗德万斯宣布就USCB关于灯丝灯LED技术专利执法行动达成许可协议
细说新买的音响如何煲机及煲机的四大要点
iphone7Plus,小米mix这几款手机系统好配置强,用了会上瘾!
科学家利用3D打印技术研发出了可编程超材料
24K黄金华为P10限量版,简直闪瞎我的眼!售价2万,我看看就好
2017年特斯拉计划全球扩张超级充电站
国内首颗QHD 微显 LCOS 芯片已成功实现从样品到量产的跃进
三大电子关键零组件本季报价急转直下,DRAM、被动元件跌幅更高达三成