10、Python面向对象编程与模块系统详解

Python面向对象编程与模块系统详解

1. 面向对象编程基础

在Python中,类和对象是实现面向对象编程的核心。首先来看类的继承和方法解析顺序的问题。

class X(object): pass
class Y(X): pass
# 下面这行代码会引发TypeError
# class Z(X,Y): pass  

在上述代码中, class Z(X,Y) 会报错,因为方法解析算法无法确定基类的合理顺序。 X 在继承列表中排在 Y 前面,按顺序应先检查 X ,但 Y 继承自 X 更特殊,若先检查 X 就无法解析 Y 中的特殊方法。不过在实际编程中,这类问题很少出现,若出现往往意味着程序设计存在严重问题。

当派生类定义了与基类同名的属性时,派生类的实例会使用派生类的属性。若要访问原始属性,可使用完全限定名,示例如下:

class D(A):
    def method1(self):
        print “Class D : method1”
        A.method1(self)  # 调用基类方法

在类实例的初始化方面,创建实例时不会自动调用基类的 __init__() 方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值