@classmethod
进行修饰class People:
@classmethod
def func_name(cls, params):
pass
class Student:
# 定义类属性
n = 20
def __init__(self, name):
# 定义实例属性
self.name = name
@classmethod
def s_info(cls):
print(cls.n) # 类方法可以访问类属性
print("call Student classmate")
# print(self.name) # 类方法不能访问实例属性
Student.s_info() # 使用“类名.方法名”的方法来调用
stu = Student("张三")
stu.s_info() # 使用“对象.方法名” 的方法来调用
class Student:
# 定义类属性
n = 20
def __init__(self, name):
# 定义实例属性
self.name = name
def s_info(self):
print(self.n) # 实例方法访问类属性
print(self.name) # 实例方法访问实例属性
print("call Student instancemethod")
stu = Student("张三")
stu.s_info() # 通过 “对象.方法名” 的方法来调用
Student.s_info(stu) # 类名.方法名(对象, 参数列表)” 的形式来调用
@staticmethod
来修饰class Student:
@staticmethod
def func_name(params):
pass
class Student:
@staticmethod
def s_info():
print("call Student staticmethod")
Student.s_info() # “类名.方法名” 的方法来调用
stu = Student()
stu.s_info() # “对象.方法名” 的方法来调用
静态方法不能访问类属性与实例属性,所以静态方法使用场景如下: