类方法
# 定义一个类
class Dog(object):
# 私有类属性
__tooth = 10
def __init__(self):
# 实例化对象的属性叫做 实例属性
self.skin = "black"
# # 普通方法
# def get_tooth(self):
# pass
# 类方法
# 1.传递的参数不是实例化对象 而是类本身
@classmethod
def get_tooth(cls):
# cls == Dog类
print("里面的类:", cls)
# 使用cls打印类属性
print(cls.__tooth)
# 不能使用类 调用实例属性
# print(cls.skin)
if __name__ == '__main__':
print("外面的类", Dog)
# 调用类方法
# Dog.get_tooth()
# 实例化对象也可以调用类方法
xiaohei = Dog()
xiaohei.get_tooth()
静态方法
class Mao(object):
# 静态方法
@staticmethod
def print_inio():
print('这是一只毛发为白色,品种是英短长毛猫,来自英国')
if __name__ == '__main__':
# 实列化对象 肉肉
rr = Mao()
# 使用实列化对象 调用静态方法
rr.print_inio()
# 使用类对象 调用静态方法
Mao.print_inio()
'''
类方法,静态方法,实例方法比较
1.传递参数
类方法传递的是cls,类对象本身
静态方法没有传递任何参数
实例方法传递的是实例化对象
2.调用
类方法可以被 类对象和实例对象调用
静态方法可以被类对象和实例对象调用
实例方法可以被类对象和实例对象调用 但是在被类对象调用是 要传递实例对象作为参数
3、作用
类方法完成一些 有关类的操作
静态方法 完成的操作与类对象和实例对象无关
实例方法 完成实例化对象的相关操作(最多一种)
'''