首页 > 其他分享 >【十六】classmethod()函数(1)

【十六】classmethod()函数(1)

时间:2023-06-01 20:47:13浏览次数:40  
标签:函数 classmethod self 十六 实例 方法 cls

【十六】classmethod()函数(1)

【1】作用

  • 将方法转换为类方法。
    • 类方法将类作为隐式第一个参数接收,就像实例方法接收实例一样。
  • 类方法可以在类(如c.f())上调用,也可以在实例(如c().f())上调用。
    • 除了类之外,实例被忽略。
    • 如果为派生类调用了类方法,则派生类对象将作为隐含的第一个参数传递。
    • 类方法不同于C++或Java静态方法。
  • 也就是说,classmethod修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象。

【2】语法

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

【3】示例

  • 返回值:
    • 返回函数的类方法
    • 下面例子展示classmethod()函数函数使用方法
class B(object):
    num = 10
    def func1(self):
        print('self')
    @classmethod
    def func2(cls):
        print('func2')
        print(cls.num)
        cls().func1()
B.func2()  # 不需要实例化

# func2
# 10
# self

标签:函数,classmethod,self,十六,实例,方法,cls
From: https://www.cnblogs.com/dream-ze/p/17450145.html

相关文章

  • 【十五】breakpoint()函数(1) - 3
    【十五】breakpoint()函数(1)-3.7+【1】作用Python3.7添加了breakpoint(),此函数将您放入调用站点的调试器中。具体来说,它调用sys.breakpointhook(),直接传递args和kws。默认情况下,sys.breakpointhook()调用pdb.set_trace(),不需要参数。在这种情况下,它纯粹是一个方便的函......
  • 【十四】anext()函数(1) - py3
    【十四】anext()函数(1)-py3.10+【1】作用anext()是Python3.10版本中的一个新函数。它在等待时从异步迭代器返回下一项如果给定并且迭代器已用尽则返回默认值。这是next()内置的异步变体,行为类似。【2】语法awaitableanext(async_iterator[,default])......
  • 【二十二】object()函数(1)
    【二十二】object()函数(1)【1】作用Object类是Python中所有类的基类如果定义一个类时没有指定继承哪个类,则默认继承object类。object没有定义__dict__所以不能对object类实例对象尝试设置属性。【2】语法object()返回值:返回一个新的无特征对象【3】示......
  • 【二十一】memoryview() 函数(1)
    【二十一】memoryview()函数(1)【1】作用memoryview()函数返回给定参数的内存查看对象(memoryview)。所谓内存查看对象是指对支持缓冲区协议的数据进行包装在不需要复制对象基础上允许Python代码访问。【2】语法memoryview(obj)obj:对象返回值:返回元组列......
  • 【二十】issubclass()函数 -- 检查类型(1)
    【二十】issubclass()函数--检查类型(1)【1】作用Python提供了如下两个函数来检查类型:issubclass(cls,class_or_tuple):检查cls是否为后一个类或元组包含的多个类中任意类的子类。isinstance(obj,class_or_tuple):检查obj是否为后一个类或元组包含的多个类中......
  • 【十九】isinstance()函数 -- 检查类型(2)
    【十九】isinstance()函数--检查类型(2)【1】作用这个函数有点类似type函数的定义type判断函数类型是什么而isinstance是通过判断对象是否是已知的类型但是isinstance比type高级一些(功能上的差异)具体差异:type()不考虑继承关系(子类不是父类类型)isinstance......
  • 【二十五】vars() 函数(1)
    【二十五】vars()函数(1)【1】作用vars()函数返回对象object的属性和属性值的字典对象。【2】语法vars([object])object--对象【3】返回值返回对象object的属性和属性值的字典对象如果没有参数,就打印当前调用位置的属性和属性值类似locals()。【4】示......
  • 【二十三】Python 中 property() 函数及 @property 装饰器的使用(1)
    【二十三】Python中property()函数及@property装饰器的使用(1)【1】property应用场景在获取、设置和删除对象属性的时候,需要额外做一些工作。比如在游戏编程中,设置敌人死亡之后需要播放死亡动画。需要限制对象属性的设置和获取。比如用户年龄为只读,或者在设置用户......
  • linux 递归和函数实验
     递归  作用:自己调用自己 1.例子:阶乘    2.遍历目录下所有文件  函数 1.函数能够接受一个参数,参数为用户名;判断一个用户是否存在如果存在,就返回此用户的shell和UID;并返回正常状态值;如果不存在,就说此用户不存在;并返回错误状态值;  2......
  • fprintf()函数的运用
    fprintf()用于文件操作#include<stdio.h>intfprintf(FILE*stream,constchar*format,...);fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如charname[20]="Mary";FILE*out;o......