1.类

class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score

  1)__init__构造方法,__init__方法的第一个参数永远是self,表示创建的实例本身,调用时,不用传递该参数。

  2)__del__   析构函数,释放对象时使用

  3)__call__函数调用

2.一个简单的例子:

class Studet(object):
def __init__(self,name,score):
self.name=name
self.score=score
def print_score(std):
print '%s: %s' % (std.name, std.score)
def get_grade(self):
if self.score >= 90:
return 'A'
elif self.score >= 80:
return 'B'
elif self.score >=70:
return 'C'
else :
return 'D'
ares=Studet('ares',90)
ares.print_score()
print 'The score grade is :',ares.get_grade()

3.变量:

  1)__ares表示ares为 私有变量 (private),只有内部可以访问,外部不能访问

  2)以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的

  3)以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。

4.处理函数:

  1)type()函数:判断对象类型

  2)isinstance()函数:判断class的类型

  3)dir()函数:获得一个对象的所有属性和方法

5.继承和多态:

  1)继承模板

  class Animal(object):

    def fun():

      pass

  class Dog(Animal):

    pass

  class Cat(Animal):

    pass

  Animal为Dog和Cat的父类。

  2)优点:

  a.继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写;

  b.多态

6.多重继承:

  类在继承关系时,通常,主线都是单一继承下来的,如果需要“混入”额外的功能,通过多重继承就可以实现。

  class Animal(object):

    def fun():

      pass

  class Runnable(object):

    def run(self):

      print('Running...')

  多重继承:

  class Dog(Animal, Runnable):

    pass

python笔记四:面向对象的更多相关文章

  1. 8.python笔记之面向对象基础

    title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...

  2. Python 基础 四 面向对象杂谈

    Python 基础  四  面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...

  3. Python:笔记(3)——面向对象编程

    Python:笔记(3)——面向对象编程 类和面向对象编程 1.类的创建 说明:和Java不同的是,我们不需要显示的说明类的字段属性,并且可以在后面动态的添加. 2.构造函数 构造函数的功能毋庸置疑, ...

  4. 9.Python笔记之面向对象高级部分

    类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的 ...

  5. Java Script 读书笔记 (四) 面向对象编程

    1. 对象,属性 前面看到对象里删除属性一直疑惑,什么是对象,为什么属性可以删除, 我印象里的属性还是停留在property, 总想不明白为什么属性竟然能够删除.直到看到标准库才明白,原来对象就是py ...

  6. guxh的python笔记四:迭代

    1,可迭代对象iterable,迭代器iterator,生成器generator 可迭代对象iterable: 实现__iter__方法的类.__iter__方法返回iterator或者generat ...

  7. Python笔记之面向对象

    1.类和对象 #create a class class fruit: def say(self): print "hello, python" if __name__ == &q ...

  8. Python笔记(四)_字符串的方法

    字符串的方法 []表示该参数时可选的,start和end参数表示范围 count(sub[, start[, end]]) 返回sub在字符串里边出现的次数 find(sub[, start[, en ...

  9. python笔记四

    #!/usr/bin/env python3 from datetime import datetime, timedelta # datetime是模块,datetime模块还包含一个datetim ...

随机推荐

  1. UVA 11105 Semi-prime H-numbers

    https://vjudge.net/problem/UVA-11105 筛法 #include<cstdio> #include<cstring> #define N 100 ...

  2. LightOJ 1013 - Love Calculator LCS

    题意:找一个串使给出的两个串都是它的子串,要求最短,求出最短长度,以及种类数. 思路:可以想到,当两个子串a,b拥有最长的公共子串为LCS时,那么可以求出的最短的串为lena+lenb-LCS. 那么 ...

  3. opencv在property panel中新建一行

    是用cv2.QT_NEW_BUTTONBAR和button type通过竖线结合可以在创建一行,如下 cv2.createButton("CV_RADIOBOX2", redraw ...

  4. bzoj 1084 DP

    首先对于m==1的情况非常容易处理(其实这儿因为边界我错了好久...),直接DP就好了,设f[i][k]为这个矩阵前i个选k个矩阵的最大和,那么f[i][k]=max(f[j][k-1]+sum[j+ ...

  5. ...args剩余参数用法

      剩余参数语法允许我们将一个不定数量的参数表示为一个数组. function sum(...theArgs) { return theArgs.reduce((previous, current) ...

  6. Git 常用命令(二)

    用 git init 在目录中创建新的 Git 仓库.  $ mkdir test $ cd test/ $ git init Initialized empty Git repository in ...

  7. [Leetcode Week14]Construct Binary Tree from Inorder and Postorder Traversal

    Construct Binary Tree from Inorder and Postorder Traversal 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/pr ...

  8. 5-3 Linux内核计时、延时函数与内核定时器【转】

    转自:http://www.xuebuyuan.com/510594.html 5-3 Linux内核计时.延时函数与内核定时器 计时 1. 内核时钟 1.1   内核通过定时器(timer)中断来跟 ...

  9. tenda t402 家庭版 有线路由器

    使用快速向导: adsl(拨号)+用户名+密码 路由器后DMZ主机设置简单图解:http://wenku.baidu.com/view/94b9f0768e9951e79b8927ce.html  可 ...

  10. python之operator操作符函数

    operator函数主要分为以下几类:对象比较.逻辑比较.算术运算和序列操作. 举例: #python 3.4 >>> operator.eq(1,2)False >>& ...