1、静态方法
(1).格式:在方法上面添加 @staticmethod
(2).参数:静态方法可以有参数也可以无参数
(3).应用场景:一般用于和类对象以及实例对象无关的代码。
(4).使用方式: 类名.静态方法名(或者对象名.静态方法名)。
class Hello(object):
@staticmethod
def say():
print('hello wold')
Hello.say()
hello = Hello() # hello wold
hello.say() # hello wold
2.类方法
无需实例化,可以通过类直接调用的方法,但是方法的第一个参数接收的一定是类本身
(1).在方法上面添加@classmethod
(2).方法的参数为 cls 也可以是其他名称,但是一般默认为cls
(3).cls 指向 类对象
(4).应用场景:当一个方法中只涉及到静态属性的时候可以使用类方法(类方法用来修改类属性)。
(5).使用 可以是 对象名.类方法名。或者是 类名.类方法名
class Person(object):
name = 'zs'
@classmethod
def change_name(cls):
cls.name = 'ls'
print(cls.name)
Person.change_name()
person = Person() # ls
person.change_name() # ls