Python面向对象(三)

多态

多态:不同的子类对象调用相同的父类方法,产生不同的执行效果,不同效果的产生以在子类中重写父类方法为前提。


类对象

在Python中类是一个特殊的对象,既然类是对象,那么类也具有类属性和类方法

1.类属性概念和使用:
类属性通常用来记录与这个类相关的特征,类属性不会用来记录具体对象的特征,例如给类定义一个count属性来记录该类创建了多少个实例,代码如下:

class Tool(object):

	# 1.使用赋值语句定义类属性,记录采用Tool类创建实例的总数
	count = 0
	
	def __init__(self, name):
		self.name = name

		# 2.记录一个实例的创建,使用“类名.类属性”方式引用
		Tool.count += 1
		

2.类方法概念和使用:

  1. 类方法定义语句:
class Tool(object):

	@classmethod        # 需使用修饰器@classmethod来指明是类方法
	def 类方法名(cls):   # cls可以采用其他命名,但约定采用cls
		function(cls.propertis)
		pass
		
# 调用类方法
Tool.类方法名()


静态方法

如果在类中封装一个方法,这个方法既不需要访问对象属性和使用对象方法
也不需要访问类属性和使用类方法,这时可以将该方法封装成一个静态方法。

  1. 定义语句:
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()

总结

属性:

  1. 类属性:采用赋值语句定义
  2. 实例属性:在初始化方法中定义

方法:

  1. 类方法:使用修饰器 @classmethod def method(cls)
  2. 实例方法:def method(self)
  3. 静态方法:使用修饰器 @staticmethod def method()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

E. Zhao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值