多态
多态:不同的子类对象调用相同的父类方法,产生不同的执行效果,不同效果的产生以在子类中重写父类方法为前提。
类对象
在Python中类是一个特殊的对象,既然类是对象,那么类也具有类属性和类方法
1.类属性概念和使用:
类属性通常用来记录与这个类相关的特征,类属性不会用来记录具体对象的特征,例如给类定义一个count属性来记录该类创建了多少个实例,代码如下:
class Tool(object):
# 1.使用赋值语句定义类属性,记录采用Tool类创建实例的总数
count = 0
def __init__(self, name):
self.name = name
# 2.记录一个实例的创建,使用“类名.类属性”方式引用
Tool.count += 1
2.类方法概念和使用:
- 类方法定义语句:
class Tool(object):
@classmethod # 需使用修饰器@classmethod来指明是类方法
def 类方法名(cls): # cls可以采用其他命名,但约定采用cls
function(cls.propertis)
pass
# 调用类方法
Tool.类方法名()
静态方法
如果在类中封装一个方法,这个方法既不需要访问对象属性和使用对象方法,
也不需要访问类属性和使用类方法,这时可以将该方法封装成一个静态方法。
- 定义语句:
class Puppy(object):
# 1.run方法不访问对象属性也不调用对象方法,
# 可以将run方法设置为静态方法
def run(self):
print('The puppy is running.')
# 2.静态方法定义方式,使用修饰器@staticmetod
@staticmethod
def bark():
print('The puppy is barking.')
# 3.调用静态方法:类名.静态方法名()
Puppy.bark()
总结
属性:
- 类属性:采用赋值语句定义
- 实例属性:在初始化方法中定义
方法:
- 类方法:使用修饰器 @classmethod def method(cls)
- 实例方法:def method(self)
- 静态方法:使用修饰器 @staticmethod def method()