学习笔记☞ python 基础(python3)【七】(面向对象编程-3)
2018-03-27 17:11
405 查看
面向对象-3
封装(enclosure): 1、封装的目的是让使用者通过尽可能少的变量名(或方法)操作对象2、封装是指隐藏类的实现细节,让使用者不用关心这些细节
私有实例变量和方法: python类中,以双下划线'__'开头,不以双下划线结尾的标识符为私有成员
私有属性在子类和类外部无法直接使用
私有方法在子类和类外部无法直接使用
继承(inheritance)和派生(derived) 为什么要继承/派生
继承的目的是延续旧的类的功能
派生的目的实在旧类的基础上添加新的功能
作用:
1、用继承派生机制,可以将一些共有功能加在基类中,实现代码共享;
2、在不改变超累代码的基础上改变原有的功能
继承/派生名词:
基类(base class)/超类(super class )/父类(father class)
派生类(derived class)/子类(child class)
单继承的语法: class 类名(超类名):
……
示例:
inherit.py
__base__属性: 用来记录此类的基类
object类是所有类的原始父类
覆盖(override) 覆盖是指在有继承关系的类中,子类中实现了与基类(超类)同名的方法,
在子类实例调用该方法时,实际调用的是子类中的覆盖版本,这种现象叫覆盖。
用于类的函数: issubclass(cls,类或者多个类的元组)
判断一个类是否继承自其它的类,
如果此类是class或tuple中的一个派生子类,
则返回True,否则返回False。
示例:
class A:
pass
class B(
96ba
A):
pass
class C(B):
pass
issubclass(C,B) #True
issubclass(C,int) #False
issubclass(C,(int,str)) #False
issubclass(C,(int,str,A) #True
super函数: super(type,obj)
返回绑定超类的实例(要求obj必须为type类型的实例)
super()
返回绑定超类的实例,等同于super(__class__,实例方法的第一个参数),
必须用在方法内部
示例:
super.py
# 此示例示意supper的用法
class A :
def mymethod( self ) :
print( 'A的mymethod方法被调用' )
class B( A ) :
def mymethod( self ) :
print( 'B的mymethod方法被调用' )
def call_all( self ) :
# 此方法想调用自己的mymethod,然后再调用A类的mymethod
self.mymethod( )
# 然后再调用A类的mymethod
super( B , self ).mymethod( )
#等同
super().mymethod() #再内部可以不写参数
b = B( )
b.mymethod( ) # B类的mymethod
# 用b调用A类的mymethod
super( B , b ).mymethod( ) # A类的mymethod
b.call_all( ) # 打印良好
相关文章推荐
- 学习笔记☞ python 基础(python3)【五】(模块,面向对象编程-1)
- Python基础学习笔记五
- Python核心编程(第二版)学习笔记02 【第3章 Python基础】
- python 3.0学习笔记之二------python基础小知识
- Object-C学习笔记二-----面向对象编程基础知识
- Python2.7 学习笔记 (一)——基础知识
- Python基础学习笔记二
- Python基础教程学习笔记----第四章 字典
- 滴水穿石--python 学习笔记--基础
- Python学习笔记---基础汇总部分
- python基础学习笔记(一)
- python基础学习笔记分享版(1)
- Python基础教程学习笔记----第五章 条件、循环和其他语句
- Python学习笔记 === python面向对象编程
- Python学习笔记整理(十四)类基础
- Python学习笔记 02 Python基础
- Python基础学习笔记三
- Python基础教程学习笔记----第一章
- Python基础学习笔记四
- Java学习笔记(三、面向对象编程基础)