Python中的实例方法、类方法、静态方法的区别

2021-04-01 03:26

阅读:669

标签:不能   实例变量   cme   print   init   class   不可   name   通过   

1、关于参数的区别

        实例方法:定义实例方法是最少有一个形参 ---> 实例对象,通常用self

        类方法:定义类方法的时候最少有一个形参 ---> 类对象,通常用cls

        静态方法:定义静态方法的时候可以不定义形参

2、关于方法定义时候添加装饰器的区别

        实例方法:不需要添加装饰器

        类方法:需要添加装饰器 ----> @classmethod

        静态方法:需要添加装饰器 ---> @staticmethod

3、调用:

        1.实例方法可以通过对象直接调用

        2.但是用类名调用的时候,需要创建一个对象,并且在传递参数的时候要将对象传递进去

        3.类方法可以通过类名直接调用,也可以通过对象来调用

        4.静态方法可以通过类名直接调用,也可以通过对象来调用

4、补充

  1.静态方法不可以继承。  

  2.类方法不能访问实例变量,只能访问类变量

class Dog(object):
    food = "gutou"
    age = "1"
    def __init__(self, name):
        self.NAME = name

    def eat(self,age): # 可以使用实例方法
        # print(self.NAME)
        print(age)
        print(self.food)
    
    @classmethod
    def eat1(cls, age): # 只能是类中的变量
        # print(cls.NAME)
        cls.food = "tang"
        
    @staticmethod
    def print_1():
        print(Dog.food, Dog.age)

 

Python中的实例方法、类方法、静态方法的区别

标签:不能   实例变量   cme   print   init   class   不可   name   通过   

原文地址:https://www.cnblogs.com/ZhengYing0813/p/13544340.html


评论


亲,登录后才可以留言!