静态方法和类方法
实例方法/对象方法 实例方法或者叫对象方法,指的是我们在类中定义的普通方法
只有实例化后才能使用的方法,该方法的第一个形参接收的一定是对象的本身
静态方法
1格式:在方法上面添加 @staticmethod
2.参数:静态方法可以有参数也可以无参数
3.应用场景:一般用于类对象以及实例对象无关的代码
4.使用方式:类名.静态方法名(或者对象名.静态方法名)
class Dog: @property def eat(self): print("吃骨头") # Dog.eat() # 普通方法只能通过对象调用的方式使用 dog =Dog() dog.eat # 吃骨头
# 静态方法不能使用类或实例的任何属性和方法 class Game: @staticmethod def show_menu(x): print(x) print("开始按钮1") print("暂停按钮2") print("结束按钮3") # g = Game() # g.show_menu() Game.show_menu(2) # 2 # 开始按钮1 # 暂停按钮2 # 结束按钮3
类方法
无需实例化,可以通过类直接调用方法,但是方法的第一个参数接手的一定是类本身
1.在方法上面添加@classmethod
2.方法的参数为cls也可以是其他名称,但是一般默认为cls
3.cls指向类对象
4.应用场景:当一个方法中只涉及到静态属性的时候可以使用类方法(类方法用来修改类属性)
5.使用 可以是 对象名.类方法名。 或者是 类名.类方法名
class Person: role = '人类' @classmethod def test(cls): #第一个参数必须是当前类对象,通过cls传递类的属性和方法(不能传实例的属性和方法) print(cls.role) print("----in test----") # Person.test() p1 =Person() p1.test() # 人类 # ----in test----