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. [PHP]算法-拼接最小字典序的实现

    拼接最小字典序: 给定一个字符串类型的数组strs,请找到一种拼接顺序,使得将所有字符串拼接起来组成的大字符串是所有可能性中字典顺序最小的并放回这个大字符串. 思路: 1.字典序,12345这五个数, ...

  2. Codeforces Round #309 (Div. 2)

    A. Kyoya and Photobooks Kyoya Ootori is selling photobooks of the Ouran High School Host Club. He ha ...

  3. 函数多个返回值与unpack的用法

    -- return the index of max number and himself -- 函数可以返回多个值 function get_max( T ) ] for i, v in ipair ...

  4. 初识 Java-监听器

    使用Listener类当java  web应用程序在web容器中运行时,在java web应用程序内部会不断发生各种事件,例如web应用的启动,暂停,销毁等.以及web应用中session开始和结束 ...

  5. NDK中使用pthread多线程中自己写的一个BUG

    在使用pthread进行NDK中的多线程开发时,自己写了一个BUG, void *darkGrayThread(void *args) { ThreadParam *param = (ThreadPa ...

  6. 微信小程序 刷新当前页面

    刷新当前页面 Measure 法一: 需要的地方 this.onLoad(),试过之后,无用!!! 法二:亲测有效 在this.onReady()中进行获取数据操作(这样一来,就既可以在初次显示时直接 ...

  7. (后台)jxl.read.biff.BiffException: Unable to recognize OLE stream

    在excel中打开,另存成xls就可以.

  8. html留言功能

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  9. IntelliJ IDEA安装后需要必须做的一件事

    把Alt+斜杆 删除 Ctrl+空格修改成 Alt+斜杆 Ctrl+空格用过输入法的人都应该知道为什么要做上面一件事

  10. mssql sqlserver SQL 位运算举例权限应用

    摘要: 下文通过举例的方式讲述sqlserver中位运算的相关知识,如下所示: 实验环境:sqlserver 2008 R2 在sqlserver的权限设置,我们通常使用1.2.4.8.16.32.6 ...