python面向对象程序设计

1.类的定义:
①Python使用class关键字来定义类,class关键字之后是一个空格,然后是类的名字,再然后是一个冒号,最后换行并定义类的内部实现。
②创建类时用变量形式表示的对象属性称为数据成员。
③用函数形式表示的对象行为称为成员方法
成员属性和成员方法统称为类的成员。
④定义了类之后,可以用来实例化对象,并通过“对象名.成员”的方式来访问其中的数据成员或成员方法。
2.self参数:
①类的所有实例方法都必须至少有一个名为self的参数,并且必须是方法的第一个形参(如果有多个形参的话),self参数代表将来要创建的对象本身。
②在类的实例方法中访问实例属性时需要以self为前缀。
③在外部通过对象调用对象方法时并不需要传递这个参数,如果在外部通过类调用对象方法则需要显式为self参数传值。
3.类成员与实例成员:
①属于实例的数据成员一般是指在构造函数__init__()中定义的,定义和使用时必须以self作为前缀;属于类的数据成员是在类中所有方法之外定义的。
②在主程序中(或类的外部),实例属性属于实例(对象),只能通过对象名访问;而类属性属于类,可以通过类名(要给self传值)或对象名都可以访问。
③在实例方法中可以调用该实例的其他方法,也可以访问类属性以及实例属性。
4.私有成员与公有成员:
①Python并没有对私有成员提供严格的访问保护机制。
②在定义类的成员时,如果成员名以两个下划线“”或更多下划线开头而不以两个或更多下划线结束则表示是私有成员。
③私有成员在类的外部不能直接访问,需要通过调用对象的公有成员方法来访问,也可以通过Python支持的特殊方式来访问。
④公有成员既可以在类的内部进行访问,也可以在外部程序中使用。
⑤_xxx:这样的对象叫保护成员,模块中这样的对象默认不能用from module import *导入。
⑥__xxx
:系统定义的特殊成员;
⑦__xxx:私有成员,只有类对象自己能访问,子类对象不能直接访问到这个成员,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。
注意:Python中不存在严格意义上的私有成员。
5.方法:
①在类中定义的方法可以粗略分为四大类:公有方法、私有方法、静态方法和类方法。
Ⅰ:私有方法的名字以两个下划线“__”开始,每个对象都有自己的公有方法和私有方法,在这两类方法中可以访问属于类和对象的成员;
Ⅱ:公有方法通过对象名直接调用,私有方法不能通过对象名直接调用,只能在属于对象的方法中通过self调用或在外部通过Python支持的特殊方式来调用。
Ⅲ:如果通过类名来调用属于对象的公有方法,需要显式为该方法的self参数传递一个对象名,用来明确指定访问哪个对象的数据成员。
Ⅳ:静态方法和类方法都可以通过类名和对象名调用,但不能直接访问属于对象的成员,只能访问属于类的成员。
Ⅴ:静态方法可以没有参数。
Ⅵ:一般将cls作为类方法的第一个参数名称,但也可以使用其他的名字作为参数,并且在调用类方法时不需要为该参数传递值。
6.继承机制:
①继承是用来实现代码复用和设计复用的机制,是面向对象程序设计的重要特性之一。设计一个新类时,如果可以继承一个已有的设计良好的类然后进行二次开发,无疑会大幅度减少开发工作量。
②在继承关系中,已有的、设计好的类称为父类或基类,新设计的类称为子类或派生类。
类继承语法规则:
class Subclass (SuperClass):
③如果没有明确写明父类,则该类默认为Object的子类。所有的类都是通过直接或间接地继承object得到的。
支持多继承

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值