python 面向对象

python 面向对象

类名的命名规则(符合大驼峰命名法)

如:CapWords,ShopCar…
每个代词的首字母大写,单词与单词之间没有下划线

面向对象的三大特性

  1. 封装,根据职责和功能将属性和方法封装到一个抽象的类中;
  2. 继承,实现代码的重用;
  3. 多态,定义时类型和运行时类型不一致;
    多态性,不同的对象调用相同的方法,会产生不同的执行结果,增加代码的灵活度。

继承的语法

class 类名(父类名):
	pass

调用父类方法

  1. super().父类方法名
  2. 父类名.方法(self) -->不推荐使用

新式类与旧式类(经典类)

  • object 是python为所有对象提供的基类,提供有一些内置的属性和方法,可以用dir(object)查看。
  1. 新式类:以object为基类的类。 推荐使用
  2. 旧式(经典)类:不以object为基类的类。 不推荐使用
  • 在python3.x 中定义类时,如果没有指定父类,会默认使用object作为该类的基类。
  • 在python2.x 中定义类时,如果没有指定父类,则不会以object作为该类的基类。
  • 为了保证代码在python2.x和python3.x上运行,在定义类时,如果没有父类,建议统一继承自object.
  • 如:
class 类名(object):
   pass

类中定义属性和方法的调用格式

调用格式
类属性类名.属性
类方法(cls)类名.方法名
__init__定义 实例属性定义对象时自动调用
实例方法对象名.方法名()

python中一切皆对象,其中类是一个特殊的对象。

class AAA():
	pass
obj1 = AAA()
obj2 = AAA()
  • 定义的类AAA属于类对象;
  • obj1,obj2 属于实例对象。
  • 在程序运行类会被加载到内存;
  • 在程序运行时,类对象在内存只有一份,在使用类时可以创建很多个对象实例。

类中方法定义

  1. 类方法定义
  • 方法内部只需要访问类属性,应该将该方法封装为类方法。
@classmethod
class 类方法名(cls):
	pass
  1. 静态方法定义
  • 在方法中不需要访问实例属性/类属性/调用实例方法/类方法,应该将该类方法封装成静态方法。
@staticmethod
class 静态方法名():
	pass
  1. 实例方法定义
  • 在方法内部既需要访问实例属性,又需要访问类属性,应该将该方法封装为实例方法
class 实例方法名(self):
	pass

类中方法调用

  • 调用静态方法,不需要创建对象,只需要通过类名.方法名调用静态方法;
  • 调用类方法,使用类名.方法名()
  • 调用实例方法,需要创建对象,通过对象名.方法名调用实例方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值