Python的高级特性12:类的继承
2015-10-04 22:49
561 查看
在面向对象的程序设计中,继承(Inheritance)允许子类从父类那里获得属性和方法,同时子类可以添加或者重载其父类中的任何方法。在C++和Java的对象模型中,子类的构造函数会自动调用父类的构造函数,但在Python中却不是这样,你必须在子类中显示调用父类的构造函数。
可以看出子类Designer没有继承父类的初始化函数,如果需要继承,则需要加上:Employee.__init__(self, name, 5000).
In [1]: class Employee: ...: def __init__(self,name,salary=0): ...: self.name = name ...: self.salary = salary ...: In [2]: class Designer(Employee): def __init__(self,name): ...: self.name = name ...: In [3]: d = Designer("alex") In [4]: d.salary --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-4-c8934453b0a8> in <module>() ----> 1 d.salary AttributeError: 'Designer' object has no attribute 'salary' In [5]: e = Employee('alex') In [6]: e.salary Out[6]: 0
可以看出子类Designer没有继承父类的初始化函数,如果需要继承,则需要加上:Employee.__init__(self, name, 5000).
相关文章推荐
- 【python】抄写大神的糗事百科代码
- 第三章 python中的字符串
- Numpy 学习之路(1)——数组的创建
- Python 进程管理工具 Supervisor 使用教程
- python有些错误换行问题解决
- java/python中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数
- python + opencv 学习系列 2 : Getting Started with Videos
- python mysql模块
- python gettext使用
- 用Python学习统计学基础-6
- 机器学习算法-K最近邻从原理到实现(Python)
- 【python】python2.x 与 python3.x区别对照+缩进错误解决方法
- python正则表达式和自制爬虫
- Python爬虫的一些总结
- Python 进程管理工具 Supervisor 使用教程
- Python中os模块的使用(附一个调试例子)
- 使用Python统计垃圾文件
- 关于wxPython中的TextCtrl响应失去焦点事件后不能再次编辑或出现不正常现象的解决办法
- Python加载csv文件的两种方式
- 萌妹子Python入门指北(一)