Python类和实例
概念太抽象了,举例说明
class People(object): position = "这是类属性1" school = "这是类属性2" @classmethod def read(cls): msg = "这是类方法,可以类调用,也可以实例调用" return msg def __init__(self, name, age): """这是构造方法,也叫魔法方法,下面是实例属性""" self.name = name self.age = age self.s = self.school #可以调用类属性 self.__money = "这是私有属性" def __privatefun(self): msg = "这是私有方法" return msg def run(self): msg = "这是实例方法" return msg def go(self): msg = f"这里是实例方法,可以获取类属性:{self.position},也可以调用类方法:{self.read()}" return msg def prifun(self): msg = f"这是实例方法,可以调用私有属性:{self.__money};也可以调用私有方法:{self.__privatefun()};只能内部调用" return msg @staticmethod def fun(): """类里的函数就叫静态方法,类和实例都可以调用""" msg = "这是静态方法" return msg zhangsan = People("zhangsan", 20) #实例化 print("实例获取实例属性---",zhangsan.name) print("实例属性里获取类属性---",zhangsan.s) print("实例调实例方法---",zhangsan.run()) print("实例方法里获取类属性和类方法---",zhangsan.go()) print("类调类属性---",People.position) print("类调类方法---",People.read()) print("实例调类属性---",zhangsan.position) print("实例调类方法---",zhangsan.read()) print("实例方法调私有属性和私有方法---",zhangsan.prifun()) print("实例调静态方法---",zhangsan.fun()) print("类调静态方法---",People.fun()) # print("私有属性和方法不能在外部调用,所以这样是错误的---",zhangsan.__money)
运行结果如下