Python学习基础核心笔记汇总——面相对象编程

第十三章 面向对象编程

在 Python 中,面向对象编程主要有两个主题, 就是类和类实例。

利用 class 关键字创建一个类:

cIg22 MyNewObjectType(bases):

‘define MyNewObjectType class’

Class_suite

 

#bases 参数用于继承的父类

opGc$ 是“所有类之母”,若未指明父类,则 object 将作为默认的父类。

创建一个实例的语法:  (注意:没有使用 uGM ,Python 根本就没有new 这个关键字) myFirstObject = MyNewObjectType()

添加类方法:

cIg22 MyDataWithMethod(object):

qGL printFoo(self):

 

#定义类

#定义方法

bL!u$ ‘You invoked printFoo()’

你可能注意到 self 参数, 它在所有的方法声明中都存在。 并且必须是第一个参数。 这个参 数代表实例对象本身, 当你调用方法的时候由解释器悄悄地传递给方法, 而不需要你自己 传递 self。

__init__()方法:类似于一个构造器,但不能说是一个构造器(因为 Python 没有使用 new) ,它在创建一个新的对象时被调用,完成一个初始化工作。

类、属性和方法的命名方式:

类:通常大写字母打头。这是标准惯例。有助于识别类。

属性:小写字母打头 + 驼峰,使用名词作为名字。

方法:小写字母打头 + 驼峰,使用谓词作为名字。

在 Python 中,声明与定义类是没有什么区别的,因为它们是同时进行的,定义(类体) 紧跟在声明(含 class 关键字的头行)和可选(但总是推荐)的文档字符串后面。

Python 不支持纯虚函数(如 C++)或抽象方法(如 Java)。

Python 严格要求, 没有实例,方法是不能被调用的。方法必须绑定(到一个实例)才能被 直接调用。

dir(class_name):             返回类对象的属性的一个名字列表

class_name.__dict__      :             返回的是一个字典, key 是属性名,value 是数据值

__init__()方法不应该返回任何对象,即, 它应该返回 None,否则将产生TypeError。

实例属性 VS 类属性:

类属性跟实例无关。这些值像静态成员那样被引用,即使在多次实例化中调用类, 类属性的值都不会改变。

子类可以通过继承覆盖父类的方法。类似,如果在子类中覆盖了了__init__()方法,那么基 类的__init__()就不会被自动调用了。

同 C++一样, Python 支持多继承。但要处理好两个方面:

 要找到合适的属性

 重写方法时,如何调用对应父类以“发挥他们的作用”,同时,在子类中处理好自 己的义务

vars()内建函数与 dir()相似,知识给定的对象都必须有一个__dict__属性。vars()返回一个字 典,包含了对象存储于其__dict__ 中的属性(键) 和值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嘿哈小将

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

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

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

打赏作者

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

抵扣说明:

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

余额充值