类方法
定义:使用装饰器@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,代码复用性