python的类方法可以访问类属性, 静态方法既不能访问类属性也不能访问实例属性, 实例方法既可以访问类属性也可以访问实例属性,但是要注意,实例方法不能修改类属性, 先看一段代码,来了解什么是类方法和静态方法
class Student:
school_name = '四中'
def __init__(self, name, age):
self.name = name
self.age = age
@classmethod
def go_to_school(cls):
msg = "去{school}上学".format(school=cls.school_name)
print(msg)
@staticmethod
def sing():
print("唱校歌")
def run(self):
print("{name}正在跑".format(name=self.name))
stu = Student('小明', 14)
stu.go_to_school()
stu.run()
stu.sing()
在这段代码里,我定义了一个Student类,这里面:
类方法可以访问类属性,在代码中,go_to_school方法传入了参数cls,可以访问类属性school_name,但不能访问实例属性。
静态方法既不能访问类属性也不能访问实例属性。
而实例方法既可以访问类属性也可以访问实例属性,但是要注意,实例方法不能修改类属性。
QQ交流群: 211426309