前置:本文章讲述类对象、类属性、类方法 ,还有实例对象、实例属性、实例方法。python3
一、类和实例是什么,包含哪些?
1.概念:
类:类对象、类属性、类方法
实例:实例对象、实例属性、实例方法
三、方法有哪些?
有类方法、实例方法、静态方法
1、书写格式
1.1、类方法书写格式:
@classmethod
def test(cls):
pass
可以通过类对象或者实例对象,调用类方法
1.2、实例方法书写格式:
def test(self):
pass
通过实例对象,直接调用实例方法。也可以通过类对象调用实例方法,但是必须传self参数
1.3、静态方法书写格式:
@staticmethod
def test():
pass
通过类对象或者实例对象,调用静态方法
2、类方法、实例方法、静态方法的分别调用方法:
class Cat:
@staticmethod
def sleep():
print('------我是静态方法------')
@classmethod
def class_test(cls):
print('-----我是类方法-----')
def eat(self):
print('-----我是实例方法------')
c=Cat()
c.class_test() #通过实例对象,调用类方法
Cat.class_test() #通过类对象,调用类方法
c.sleep() #通过实例对象,调用静态
Cat.sleep() #通过类对象,调用静态
c.eat() #通过实例对象,调用实例方法
Cat.eat(c) #通过类对象,调用实例方法,但是必须传self参数
3、易混淆,实例属性和类属性使用区别。
实例属性是由实例方法去修改,类属性是由类方法去修改
class Cat(object):
age = 0
def __init__(self):
self.age = 18
@classmethod
def add_age(cls):
cls.age = 100
tom=Cat()
print(tom.age) #打印是 实例属性
print(Cat.age) #打印是 类属性
Cat.add_age() #调用执行类方法
print(Cat.age) #打印是 修改后的类属性
运行结果: