类的方法有以下几种:
(1) 公有方法:在类中和类外都能调用的方法称为公有方法
(2) 私有方法:只能在类中调用,不能被类的外部调用的方法称为私有方法,必须以双下划线开始来定义私有方法,如 __talk(),__think() 等
(3) 类方法:能够被类所调用,也能够被对象所调用的方法称为类方法,需要通过装饰器 classmethod 进行处理才能成为类方法
(4) 静态方法:相当于“全局函数”,跟类没什么关系了。可以被类直接调用,也可以被所有实例化的对象所调用,需要通过装饰器 staticmethod 进行处理才能成为静态方法,注意静态方法没有 self 参数
PS:类的方法必须接收一个参数 self,用来区分函数和类的方法,self 表示执行的对象本身
#!/usr/bin/env python #-*- coding:utf-8 -*- class People(object): def __init__(self): self.name = 'Tom' self.age = 23 def commonFunc(self): # 定义公有方法 pass def __privateFunc(self): # 定义私有方法 pass @classmethod # 定义类方法 def classFunc(self): pass @staticmethod # 定义静态方法,注意没有self参数 def staticFunc(): pass def test(self): self.commonFunc() # 可以在类的内部调用公有方法 self.__privateFunc() # 可以在类的内部调用私有方法 self.classFunc() # 可以在类的内部调用类方法 self.staticFunc() # 可以在类的内部调用静态方法 if __name__ == '__main__': obj = People() obj.commonFunc() # 可以通过对象在类的外部调用公有方法 obj.__privateFunc() # 不可以通过对象在类的外部调用私有方法,这里会报错 obj.classFunc() # 可以通过对象在类的外部调用类方法 obj.staticFunc() # 可以通过对象在类的外部调用静态方法