当前位置: 首页 > news >正文

12.8 类与对象的绑定方法和非绑定方法

12.8 类与对象的绑定方法和非绑定方法

  • 绑定方法:方法绑定给对象使用。
  • 对象的绑定方法:没有加任何装饰的方法就是对象的绑定方法;只有对象能用,类也能使用,类使用时必须传参数。
  • 类的绑定方法:加了@classmethod装饰器的方法就是类的绑定方法;类能使用,对象也能使用,但是数据类型依然是类;不需要传入参数。
  • 非绑定方法: 加了@staticmethod装饰器的方法就是非绑定方法,也就是一个普通函数。
class Foo:#绑定给对象:只有对象能用,类也能使用,类使用时必须传参数def f1 (self):print(self)@classmethod  #让被装饰的函数给类使用,不需要加参数,约定俗成参数为cls#绑定给类的方法类能使用,对象也能使用,但是参数依然是类。def f2(cls): print(cls)#什么都不绑定的,非绑定方法,定义了普通函数。@staticmethoddef f3(self): #和普通函数一样print(self)def f1 (aa):print(aa)#绑定给对象
f=Foo()
f.f1()
#输出:<__main__.Foo object at 0x000001AF5C9E9640>#绑定给类
Foo.f2()
#输出:<class '__main__.Foo'>
# Foo.f1(11) #不这样调用f.f2()
#输出: <class '__main__.Foo'>#非绑定方法
Foo.f3(22)
#22
f.f3('fff')
#输出:fff
  1. 什么时候使用对象的绑定方法?
    如果这个方法需要使用对象作为参数的时候,就得使用对象绑定方法。

  2. 什么时候使用类的绑定方法 ?
    这个方法需要使用类作为参数,就得使用类绑定方法:@classmethod。

  3. 什么时候使用非绑定方法?
    这个方法就不需要类作为参数,又不需要对象作为参数使用非绑定方法:@staticmethod。

http://www.rkmt.cn/news/309.html

相关文章:

  • 9.8
  • nfs服务
  • 低功耗蓝牙BLE与小程序通讯
  • 深度解码你自己看着办:职场新人必须掌握的潜台词破解术
  • 记录一个Windows上的键盘鼠标模拟库和沟子库--Input
  • 数据集和数据系统_AI成为工作中很好用的协同成员了
  • IDM超详细图文安装激活教程,一次安装免费使用 Internet Download Manager
  • 标题
  • 12.5 多态与多态性
  • 集训日记
  • 从想法到代码:AI编程时代,我们如何高质量“喂养”AI?
  • 25年CSP前ds做题记录
  • CSP-S模拟18
  • python基础——函数小进阶
  • 别再猜了-开始测量吧-一份实用的Web性能指南
  • C++《C++11》(上) - 详解
  • 图论2 专题简记
  • 1
  • ClaudeCode实现简单需求文档分析与拆分
  • 【初赛】排序 - Slayer
  • LG11755
  • 「LAOI-9」Update
  • ABC393F
  • ABC389F
  • ABC150 C-F
  • 【游戏设计】五子棋设计思路
  • LG10516
  • Linux作业及状态转换
  • 设备驱动程序和设备独立性软件的区别
  • 树状数组板子