美文网首页
python classmethod修饰符

python classmethod修饰符

作者: Joyner2018 | 来源:发表于2022-10-17 00:38 被阅读0次

    介绍

    classmethod修饰符修饰的函数不需要实例化一个类对象即可调用,在函数定义时第一个参数为系统保留,由系统传入,表示当前类的类型,无法手动传入,即使由实例化的类对象调用,仍然表示类的类型,非实例化对象。
    类中函数定义时,第一个参数名称可为任意,但默认无classmethod修饰符时,一般声明为‘self’,包含classmethod修饰符时,一般声明为’cls’。

    描述

    classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

    举例

    无classmethod修饰符

    
    class A:
        def test_func(self):
        print("test_func:",self)
    a=A()
    a.test_func()
    print(a)
    
    输出
    
    test_func:  <__main__.A object at 0x00000000085153C8>
    <__main__.A object at 0x00000000085153C8>
    
    

    有classmethod修饰符

    
    class A:
        @classmethod
        def test_func(cls):
            print("test_func:",cls)
    
    A.test_func()
    A().test_func()
    
    test_func1:  <class '__main__.A'>
    test_func1:  <class '__main__.A'>
    
    

    参考

    https://www.jianshu.com/p/d4960fbc5d4d

    相关文章

      网友评论

          本文标题:python classmethod修饰符

          本文链接:https://www.haomeiwen.com/subject/agkjzrtx.html