OOP-类和对象的三种方法

mac2024-03-14  25

类和对象的三种方法

实例方法 需要实例化对象才能使用的方法,使用过程中可能需要截至对象的其他对象的方法完成 静态方法 不需要实例化,通过类直接访问 类方法 不需要实例化 # 三种方法的案例 class Person(): # 实例方法 def eat(self): print(self) print("eating........") # 类方法 # 类方法的第一个参数,一般命名为cls,区别于self @classmethod def play(cls): print(cls) print("playing..........") # 静态方法 # 不需要调用第一个参数表示自身或者类 @staticmethod def say(): print("Saying.......") yy = Person() # 实例方法 yy.eat() # 类方法 Person.play() yy.play() # 静态方法 Person.say() yy.say() <__main__.Person object at 0x000001A089791518> eating........ <class '__main__.Person'> playing.......... <class '__main__.Person'> playing.......... Saying....... Saying.......

三种方法使用方面的区别

实例方法

定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法); 调用:只能由实例对象调用。

类方法

定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法); 调用:实例对象和类对象都可以调用。

静态方法

定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法; 调用:实例对象和类对象都可以调用。
最新回复(0)