类方法
定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);
调用:实例对象和类对象都可以调用。
类方法应用场景:
1,类中有些方法不需要对象参与【不要对象的一切东西】 2,对类中的静态变量进行改变时要用类方法 3,继承中,父类得到子类的类空间
静态方法
定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;
调用:实例对象和类对象都可以调用。
作用:
1,代码块清晰 2,代码复用性
#类方法# class A:# def func(self): #普通方法# print(self)## @classmethod# def func1(cls): #类方法# print(cls)## a1 = A()# # a1.func()# # A.func(a1)## A.func1()# # 类方法:通过类名调用的方法,类方法中第一个参数是cls,python自动将类名(类空间)自动传给cls# a1.func1()#对象调用类方法,得到的是类本身## #类方法应用场景# #1,类中有些方法不需要对象参与【不要对象的一切东西】# #2,对类中的静态变量进行改变时要用类方法# #3,继承中,父类得到子类的类空间## class B(A):# pass## B.func1()#静态方法:#不需要传默认参数class A: @staticmethod def login(username,password): if username == 'alex' and password == '123': print('登录成功') else: print('登录失败')A.login('alex','123')#1,代码块清晰#2,代码复用性