如何使用Python的classmethod修饰符?
- 内容介绍
- 文章标签
- 相关推荐
本文共计418个文字,预计阅读时间需要2分钟。
`classmethod` 装饰的方法是类方法,无需实例化即可调用,直接通过类名调用。方法名后跟括号来调用。相对的,实例方法是实例化对象后才能调用的方法。下面是一个简单的类定义示例:
pythonclass A(object): @classmethod def class_method(cls): print(这是一个类方法,可以直接通过类名调用。)
def instance_method(self): print(这是一个实例方法,需要实例化后调用。)
调用类方法A.class_method()
实例化对象a=A()
调用实例方法a.instance_method()
classmethod 修饰的方法是类方法,不需要实例化便可以调用,直接类名.方法名()来调用。
相对应的是实例方法,需要实例化后才可以调用的方法。
class A(object):# 属性默认为类属性(可以给直接被类本身调用)
num = "类属性"
# 实例化方法(必须实例化类之后才能被调用)
def func1(self): # self : 表示实例化类后的地址id
print("func1")
print(self)
# 类方法(不需要实例化类就可以被类本身调用)
@classmethod
def func2(cls): # cls : 表示没用被实例化的类本身
print("func2")
print(cls)
print(cls.num)
cls().func1()
# A.func1() 这样调用是会报错:因为func1()调用时需要默认传递实例化类后的地址id参数,如果不实例化类是无法调用的
A.func2() # 直接调用
本文共计418个文字,预计阅读时间需要2分钟。
`classmethod` 装饰的方法是类方法,无需实例化即可调用,直接通过类名调用。方法名后跟括号来调用。相对的,实例方法是实例化对象后才能调用的方法。下面是一个简单的类定义示例:
pythonclass A(object): @classmethod def class_method(cls): print(这是一个类方法,可以直接通过类名调用。)
def instance_method(self): print(这是一个实例方法,需要实例化后调用。)
调用类方法A.class_method()
实例化对象a=A()
调用实例方法a.instance_method()
classmethod 修饰的方法是类方法,不需要实例化便可以调用,直接类名.方法名()来调用。
相对应的是实例方法,需要实例化后才可以调用的方法。
class A(object):# 属性默认为类属性(可以给直接被类本身调用)
num = "类属性"
# 实例化方法(必须实例化类之后才能被调用)
def func1(self): # self : 表示实例化类后的地址id
print("func1")
print(self)
# 类方法(不需要实例化类就可以被类本身调用)
@classmethod
def func2(cls): # cls : 表示没用被实例化的类本身
print("func2")
print(cls)
print(cls.num)
cls().func1()
# A.func1() 这样调用是会报错:因为func1()调用时需要默认传递实例化类后的地址id参数,如果不实例化类是无法调用的
A.func2() # 直接调用

