类方法和静态方法

类方法

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

猜你喜欢

转载自www.cnblogs.com/tanxu05/p/10039628.html