python遗产
1. python类方法的定义:
class Animal():
def __init__(self,name):
self.name=name;
def show(self):
print self.name;
a=Animal('dog');
a.show();
上面定义了一个类Animal,它以class keyword开头,类中的方法用defkeyword开头,类中的init是类的构造方法,在生成实例的时候会自己主动调用,类中还定义了show方法,它用于打印实例的变量name,每一个方法都带有參数self,它能够觉得是当前的对象自身。
2. 继承是面向对象的重要特征。它能够提高代码的复用性,从而降低某些代码的重写。继承能够分为单继承和多重继承。python中指定基类的方法是定义派生类时在括号里写入基类的名字,如class derive(base).python能够使用两种单继承的方法,第一种是:
class Animal():
def __init__(self,name):
self.name=name;
def show(self):
print self.name;
#a=Animal('dog');
#a.show(); class dog(Animal):
def __init__(self,name):
Animal.__init__(self,name);
def bark(self):
print "dog can bark"; d=dog('dog');
d.bark();
上面的dog类继承自基类Animal,它的构造方法中调用了基类的构造方法Animal.__int__(); 这一点须要注意,python的派生类实例化对象时,并不会自己主动基类的构造方法。
派生类对象会首先在本类查找init方法。假设找到就调用然后完毕实例化,假设找不到。则会在基类中寻找init方法完毕实例化。假设有多个基类,则会依照继承的顺序依次寻找init方法。这个后面还会讲到。
另外一种单继承的方法是使用super函数,使用的方法是:
__metaclass__=type;
class Animal():
def __init__(self,name):
self.name=name;
def show(self):
print self.name;
#a=Animal('dog');
#a.show(); class dog(Animal):
def __init__(self,name):
super(dog,self).__init__(name);
def bark(self):
print "dog can bark"; d=dog('dog');
d.bark();
上面的dog类使用super(dog,self),它接受两个參数,派生类名和self。
3. python的多重继承
多重继承仅仅要在括号内填入两个或者很多其它基类就可以,如class derive(base1,base2)
class base1():
def __init__(self):
print "base1 called"; class base2():
def __init__(self):
print "base2 called"; class derive1(base1,base2):
def __init__(self):
#base1.__init__(self);
#base2.__init__();
print "derive1 called"; class derive2(base2,base1):
pass;
键入命令:
>>>d1=derive1()
derive1 called
删除derive1中的 __init__(self)方法,则敲入一下命令:
>>>d1=derive1()
base1 called
>>>d2=derive2()
base2 called
>>>d1.show()
this is base1
>>>d2.show()
this is base1
派生类在实例化时,首先查找本类中的构造方法,假设有则调用本类的构造方法,假设没有,则调用第一个调用基类的构造的方法,如上面的derive1假设不定义构造方法,会调用base1的构造方法。
除了构造方法外,其他方法的调用方式与此类似,如d1.show(),呼叫base1中间show()办法。
版权声明:本文博主原创文章,博客,未经同意不得转载。
python遗产的更多相关文章
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- 【Python升级录】--基础知识
创建角色成功! 正在载入python........ [python介绍] python是一门动态解释性的强类型定义语言. python的创始人为吉多·范罗苏姆(Guido van Rossum).1 ...
- 操作系统和Python的发展历程
一:操作系统的发展历史: 操作系统:什么是操作系统?我们首先想到的是电脑,,也就是所谓的Windows8,Windows7,或者XP系统和Windows10,当然也包括我们手机的安卓系统或者IPhon ...
- Python初识与简介【开篇】
目录 1.扯淡 2.Python历史 3.Python简介 4.Python应用 5.为什么是python而不是其他语言? 6.Python的种类 7.Python的特点 8.Python设计哲学 9 ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记03
day3课程目录: pyhton的历史 32bit和64bit系统的区别 Python版本的选择 第一个pyhton程序 文件后缀名及系统环境变量的介绍 pyhton程序的执行和其他编程语言的简单对比 ...
- 小白的Python之路 day1
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van ...
- python初识(一)
python语言的发展 python语言诞生于1990年,由Guido van Rossum设计并领导开发. 1989年12月,Guido为打发圣诞节时间而开发的项目. python名字的由来,由于当 ...
- 我的Python笔记
声明:本文整理借鉴金角大王的Python之路,Day1 - Python基础1,仅供本人学习使用!!! 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程 ...
- python从零开始 -- 第0篇之Hello World!
为什么选择python以及版本选择 学习资料 学习方法和路径 1. 为什么选择python以及版本选择: Python 好玩,强大,更多关于关于为什么选择Python,在 编程小白的第一本 Pyt ...
随机推荐
- 关于window.history.back()后退问题
Windows下的window.history.back()后退后返回的不仅仅是前一个页而是前一个页的状态.假设一个页我改动了3次那必须后退3次才干回到前一个页.并且数据库中删除的数据依旧显示在上面感 ...
- 字符串string和内存流MemoryStream及比特数组byte[]互转
原文:字符串string和内存流MemoryStream及比特数组byte[]互转 字符串string和内存流MemoryStream及比特数组byte[]互转比较 定义string变量为str, ...
- ACM起步要点总结(转哈工大)
首先,我想说的就是,我是一个很普通的ACMer,高中没有参加过任何计算机和数学竞赛的经历,也没有ben那样过人的天资,努力至今也未能取得什么成绩,我之所以写下这篇文章,只是希望给刚进大学或者刚进ACM ...
- Linux共享wifi给Android手机
亲測可行,測试系统:Deepin2014,Ubuntu也一样.步骤很easy. 1.卸载hostapd,sudo apt-get remove hostapd(假设原来装过的话卸载,由于某些版本号不支 ...
- VSTO 学习笔记(十)Office 2010 Ribbon开发
原文:VSTO 学习笔记(十)Office 2010 Ribbon开发 微软的Office系列办公套件从Office 2007开始首次引入了Ribbon导航菜单模式,其将一系列相关的功能集成在一个个R ...
- hdu1824(two-sat)
传送门:Let's go home 题意:有n个队伍要回家,但是每队必须留下一人,而且m个限制,a留下,b必须回家,问能否在限制条件下每队留下一人. 分析:将每个队的队长和两个队员当成i和i':然后对 ...
- [android]APP启动界面——SplashActivity
概念 当前应用程序在启动的时候都会有一个展示自己公司LOGO和APP名字的界面.这个界面成为SplashActivity. 布局 <? xml version="1.0" e ...
- WPF案例(-)模拟Windows7 Win+Tab切换
原文:WPF案例(-)模拟Windows7 Win+Tab切换 一个使用Wpf模拟Windows7 Win+Tab页面切换的小程序,使用快捷键Ctrl+Down或Ctrl+Up在示例程序各个页面元素之 ...
- EF一次请求公用一个实例
应用场景: 我们在程序开发时,对数据库的操作是必不可少的部分,常规的做法是直接使用Using()语句块,在用完后立即释放连接资源,这种做法在桌面应用程序中毫无问题,但是在Web程序中,尤其是在当今大数 ...
- poj 3280 Cheapest Palindrome ---(DP 回文串)
题目链接:http://poj.org/problem?id=3280 思路: dp[i][j] :=第i个字符到第j个字符之间形成回文串的最小费用. dp[i][j]=min(dp[i+1][j]+ ...