python class

分为三个部分:class and object(类与对象),inheritance(继承),overload(重载)and override(覆写)。

class and object

类的定义,实例化。及成员訪问。顺便提一下python中类均继承于一个叫object的类。
class Song(object):#definition

    def __init__(self, lyrics):
self.lyrics = lyrics#add attribution def sing_me_a_song(self):#methods
for line in self.lyrics:
print line happy_bday = Song(["Happy birthday to you",
"I don't want to get sued",
"So I'll stop right there"])#object1 bulls_on_parade = Song(["They rally around the family",
"With pockets full of shells"])#object2 happy_bday.sing_me_a_song()#call function bulls_on_parade.sing_me_a_song()

inheritance(继承)

python支持继承。与多继承。可是一般不建议用多继承。由于不安全哦!
class Parent(object):

    def implicit(self):
print "PARENT implicit()" class Child(Parent):
pass dad = Parent()
son = Child() dad.implicit()
son.implicit()

overload(重载)and override(覆写)

重载(overload)和覆盖(override)。在C++,Java。C#等静态类型语言类型语言中,这两个概念同一时候存在。
python尽管是动态类型语言,但也支持重载和覆盖。
可是与C++不同的是,python通过參数默认值来实现函数重载的重要方法。

以下将先介绍一个C++中的重载样例,再给出相应的python实现,能够体会一下。

C++函数重载样例:
void f(string str)//输出字符串str  1次
{
cout<<str<<endl;
}
void f(string str,int times)//输出字符串 times次
{
for(int i=0;i<times;i++)
{
cout<<str<<endl;
}
}

python实现:

通过參数默认值实现重载
<span style="font-size:18px;">def f(str,times=1):
print str*times
f('sssss')
f('sssss',10)</span>
覆写
class Parent(object):

    def override(self):
print "PARENT override()" class Child(Parent): def override(self):
print "CHILD override()" dad = Parent()
son = Child() dad.override()
son.override()

super()函数


函数被覆写后。怎样调用父类的函数呢?
class Parent(object):

    def altered(self):
print "PARENT altered()" class Child(Parent): def altered(self):
print "CHILD, BEFORE PARENT altered()"
super(Child, self).altered()
print "CHILD, AFTER PARENT altered()" dad = Parent()
son = Child() dad.altered()
son.altered()

python中。子类自己主动调用父类_init_()函数吗?


答案是否定的,子类须要通过super()函数调用父类的_init_()函数

class Child(Parent):

    def __init__(self, stuff):
self.stuff = stuff
super(Child, self).__init__()

一入python深似海--class的更多相关文章

  1. 一入python深似海--dict(字典)的一种实现

    以下是python中字典的一种实现.用list数据结构实现字典.详细是这种:[[(key1,value1),(key2,value2),...],[],[],...] 内部每个hash地址是一个lis ...

  2. 一入python深似海--浅拷贝与深拷贝

    python中有一个模块copy,deepcopy函数用于深拷贝,copy函数用于浅拷贝. 要理解浅拷贝,必须先弄清楚python中的引用. 引用 Python中一切都是对象,变量中存放的是对象的引用 ...

  3. 一入python深似海--变量和对象

    一.基本原理 Python中一切都是对象,变量是对象的引用. 这是一个普遍的法则.我们举个样例来说.Python是怎样来处理的. x = 'blue' y = 'green' z = x 当pytho ...

  4. 一入python深似海--range()、list与for

    range使用方法 使用python的人都知道range()函数非常方便,今天再用到他的时候发现了非常多曾经看到过可是忘记的细节. 这里记录一下: range(1,5)#代表从1到5(不包括5) [1 ...

  5. 一入python深似海--python之道

    python社区不乏幽默.先来看"python之道"这首诗. 导入this包: import this 输出是一首诗,这首诗总结了Python的风格,能够指导Python程序猿的编 ...

  6. 一入python深似海--对象的属性

    Python中一切皆是对象,每一个对象都能够有多个属性.Python是怎样管理这些属性呢?我们来探讨一下. 属性的__dict__系统 对象的属性包括两部分:类属性和对象属性.对象的属性可能来自于其类 ...

  7. 一入Python深似海--print

    先给大家来个干货^~^,学习Python的一个好站点,http://learnpythonthehardway.org/book/ 经典样例 以下是几个老经典的样例喽,刚接触Python的能够敲一敲, ...

  8. 「一入 Java 深似海 」系列课程

    第一期 「一入 Java 深似海 」系列课程 - 第一期 第一节:Java 语言基础

  9. 一入爬虫深似海,从此游戏是路人!总结我的python爬虫学习笔记!

    前言 还记得是大学2年级的时候,偶然之间看到了学长在学习python:我就坐在旁边看他敲着代码,感觉很好奇.感觉很酷,从那之后,我就想和学长一样的厉害,就想让学长教我,请他吃了一周的饭,他答应了.从此 ...

随机推荐

  1. 49.Linux-wpa_cli使用之WIFI开启,扫描热点,连接热点,断开热点,WIFI关闭(49)

    本章学习内容: 1.WIFI如何开启 2.扫描热点 3.连接热点 4. 断开热点 5.关闭WIFI 本节使用的是wpa_supplicant工具,它主要包含wpa_supplicant(命令行模式)与 ...

  2. Java学习笔记之——包

    可以利用包,把不同的类分类存放,方便管理 在同一个包下不允许出现同名的类,可以利用分包达到可以出现同名的类 (1)包的创建: 命名:尽量做到不重复 一般:域名倒置作为前缀,再加上功能等分包 eg:   ...

  3. cron和crontab命令详解 crontab 每分钟、每小时、每天、每周、每月、每年定时执行 crontab每5分钟执行一次

    cron机制        cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制 crontab参数        -u:这个参数可以让我们去编辑其他 ...

  4. 弹性盒模型,flex布局

    弹性盒模型   弹性盒子是css3的一种新布局模式,由容器(父元素)和项目(子元素)组成. 弹性盒子是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式. 引入弹性盒模型的 ...

  5. SQL Server: Datetime,Datetime2

    select CONVERT(nvarchar(50), '2018-10-10 10:13:32.000', 126) select convert(nvarchar(MAX), '2018-10- ...

  6. iphone手机怎么录屏 两种方法任你挑选

    iphone手机怎么录屏呢?苹果手机拥有独特的Airlay镜像投屏,AirPlay的工作原理是当iPhone或IPAD与支持AirPlay技术的硬件,比如Apple TV等设备处在同一个wife的情况 ...

  7. Android 布局巧用之include、merge、ViewStub

    原文链接:https://mp.weixin.qq.com/s/bTA2gztUzqvqER2rz56RRQ 相信大家经常听到include.merge.ViewStub这样的标签,官方也提到这三种布 ...

  8. Html富文本编辑器

    本文推荐两款简单的富文本编辑器[KindEditor,NicEdit]用于获得所见即所得的编辑效果,本文仅供学习分享使用,如有不足之处,还请指正. 概述 这两款编辑器都是采用JavaScript编写, ...

  9. Android项目实战(四十九):Andoird 7.0+相机适配

    解决方案类似: Android项目实战(四十):Andoird 7.0+ 安装APK适配 解决方法: 一.在AndroidManifest.xml 文件中添加 四大组件之一的 <provider ...

  10. Android为TV端助力 Service 两种启动方式的区别

    服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务.这两个方法都 可以启动Service,但是它们的使用场合有所不同.使 ...