一. 动静态方法
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