类方法

一. 动静态方法

1.1 动态方法

1.绑定给对象的方法
    class Student:
        def run(self):
            print(self)

    # 实例化对象
    obj1 = Student()

    # 类调用绑定给对象的方法:有几个参数就需要传几个参数
    Student.run(123)     # 123

    # 对象调用绑定给对象的方法:会自动将对象当做第一个参数传入
    obj1.run()           # <__main__.Student object at 0x000001F2DF6B8C10>


2.绑定给类的方法
    class Student:
        # 绑定给类的方法需要用 classmethod 关键字
        @classmethod
        def eat(cls):
            print(cls)


    # 实例化对象
    obj1 = Student()

    # 类调用绑定给类的方法:会自动将类当做第一个参数传入
    Student.eat()        # <class '__main__.Student'>

    # 对象调用绑定给类的方法:也不需要传参 会讲产生该对象的类自动当做第一个参数传入
    obj1.eat()           # <class '__main__.Student'>

1.2 静态方法

class Student:
      @staticmethod
      def speak(a):
          print(a)

    """普普通通的函数:无论谁来调 都必须传固定的参数个数"""

    # 实例化对象
    obj1 = Student()

    # 类调用静态方法:要自己传值
    Student.speak(123)             # 123
    # 对象调用静态方法:要自己传值
    obj1.speak(321)                # 321
posted @ 2023-05-06 20:41  codegjj  阅读(0)  评论(0编辑  收藏  举报