Welcome to kimi's blog

面向对象之动静态方法

动静态方法

在类中定义的函数有多种特性
class Student:
    school_name = '江南大学'

    # 1.类中直接定义函数 默认绑定给对象 类调用:函数形参有几个参数>>类传几个 对象调用第一个参数就是对象自身
    def func1(self):
        print('from func1')

    # 2.被@classmethod修饰的函数 默认绑定给类 类调用第一个参数就是类自身 对象也可以调用并且会自动将产生该对象的类当做第一个参数传入
    @classmethod
    def func2(cls):
        print('from func2',cls)

    # 3.普普通通的函数 无论是类还是对象调用 都必须自己手动传参
    @staticmethod
    def func3(a):
        print('from func2',a)

obj = Student()

# 1.绑定给对象的方法
# obj.func1()  # from func1
# Student.func1(123)  # from func1

# 2.绑定给类的方法
# Student.func2()  #等同于func2(Student)   from func2 <class '__main__.Student'>
# obj.func2()   # 等同于func2(Student)     from func2 <class '__main__.Student'>

# 3.静态方法
Student.func3(321)  # from func2 321
obj.func3(321)    # from func2 321
posted @ 2022-11-03 17:16  魔女宅急便  阅读(32)  评论(0)    收藏  举报
Title