#############面向对象#####################

类:

In [1]: class MyClass(object):         ##用class定义一个类
...: def pstar(self):
...: print '*'*20
...: In [2]: a = MyClass() ##创建一个实例对象,跟java相似 In [3]: a.pstar() ##通过实例对象,调用类里面的方法,这里的相当于把实例对象’a‘传递给self,作为pstar的参数了,所以不报错,self 是可以是任何东西,习惯写self
********************

In [4]: MyClass.pstar(a)    #####
  ********************

#####################类的组合###########################

#!/usr/bin/env python
#-*- coding:utf-8 -*- class Info(object):
def __init__(self,ph,em,qq):
self.phone = ph
self.email = em
self.qq = qq
def get_phone(self):
return self.phone
def update_phone(self,newph):
self.phone = newph
class AddrBook():
def __init__(self,nm,ph,em,qq):
self.name = nm
self.info = Info(ph,em,qq)
if __name__ == '__main__':
bob = AddrBook("Bob Green",'','bob@qq.com','')
print bob.info.get_phone()

效果:

C:\Python27\python2.exe D:/pycharm/pa/addbook2.py
15980113980
Bob Green

####################类的继承###################

#!/usr/bin/env python
#-*- coding:utf-8 -*- class AddBook(object):
def __init__(self,nm,ph):
self.name = nm
self.phone = ph
def get_name(self):
return self.name
def get_phone(self):
return self.phone
class Add(AddBook):
pass
if __name__ == '__main__':
bob = Add('Bob Green','')
print bob.get_phone()
print bob.get_name()

效果:

C:\Python27\python2.exe D:/pycharm/pa/addbook.py
15980113990
Bob Green
#!/usr/bin/env python
#-*- coding:utf-8 -*- class AddBook(object):
def __init__(self,nm,ph):
self.name = nm
self.phone = ph
def get_name(self):
return self.name
def get_phone(self):
return self.phone
class Add(AddBook):
def __init__(self,nm,ph,id):
self.id = id
AddBook.__init__(self,nm,ph) #####继承 if __name__ == '__main__':
bob = Add('Bob Green','','')
print bob.get_phone()
print bob.get_name()
print bob.id

效果:

C:\Python27\python2.exe D:/pycharm/pa/addbook.py
15980113990
Bob Green
350823199900616671

额外:

##########__str__##############

#!/usr/bin/env python
#-*- coding:utf-8 -*- class Book():
def __init__(self,tt,bb):
self.tt = tt
self.bb = bb
def __str__(self):
return self.tt if __name__ == '__main__':
playbook = Book('fush','hua')
print playbook ###因为类中定义了__str__方法,直接通过实例对象返回值

结果:

C:\Python27\python2.exe D:/pycharm/pa/book.py
fush

############__call__################

#!/usr/bin/env python
#-*- coding:utf-8 -*- class Book():
def __init__(self,tt,bb):
self.tt = tt
self.bb = bb
def __str__(self):
return self.tt
def __call__(self):
print '%s %s' % (self.tt,self.bb) if __name__ == '__main__':
playbook = Book('fush','hua')
print playbook #因为类中定义了__str__方法,此处打印出的是__str__的返回值
playbook() #调用playbook就是执行__call__方法中的代码

今日最后:

In [8]: import ftplib

In [9]: ftplib.__file__
Out[9]: '/usr/lib64/python2.6/ftplib.pyc'
[root@master ~]# vim /usr/lib64/python2.6/ftplib.py

python 基础之第十一天(面向对象)的更多相关文章

  1. Python基础笔记系列十一:标准输入输出、文件读写和指针等操作

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...

  2. Python基础(二十一):面向对象“类”第四课——魔法方法

    先划一下重点: 6个魔法方法: 动态操作属性的4个函数: 魔法方法 魔法方法的简单介绍 魔法方法的命名规则:方法名(前后各有2个下划线). 通常情况下,不会主动去调用魔法方法,而是在满足一定的条件下, ...

  3. python学习笔记-(十一)面向对象进阶&异常处理

    上篇我们已经了解了一些面向对象的基础知识,本次就了解下面向对象的一些进阶知识(虽然我也不知道有什么卵用). 静态方法 静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作.使 ...

  4. Python基础入门(6)- 面向对象编程

    1.初识面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本篇随笔将详细介绍Python的面向对象编程. 如果你以前没有接触过面向对象 ...

  5. Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  6. Py修行路 python基础 (十六)面向对象编程的 继承 多态与多态性 封装

    一.继承顺序: 多继承情况下,有两种方式:深度优先和广度优先 1.py3/py2 新式类的继承:在查找属性时遵循:广度优先 继承顺序是多条分支,按照从左往右的顺序,进行一步一步查找,一个分支走完会走另 ...

  7. Python基础(18)_面向对象程序设计2(反射、__str__、__del__、__item__系列)

    一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object) ...

  8. Python基础(17)_面向对象程序设计(抽象类、继承原理、封装、多态,绑定方法)

    一.抽象类 抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 1.在python中实现抽象类 import abc #利用abc模块实现抽象类 class All_file(metacl ...

  9. Python基础(16)_面向对象程序设计(类、继承、派生、组合、接口)

    一.面向过程程序设计与面向对象程序设计 面向过程的程序设计:核心是过程,过程就解决问题的步骤,基于该思想设计程序就像是在设计一条流水线,是一种机械式的思维方式 优点:复杂的问题的简单化,流程化 缺点: ...

随机推荐

  1. activiti自己定义流程之整合(二):使用angular js整合ueditor创建表单

    基础环境搭建完成,接下来就该正式着手代码编写了,在说代码之前.我认为有必要先说明一下activit自己定义流程的操作. 抛开自己定义的表单不谈.通过之前的了解,我们知道一个新的流程開始.是在启动流程实 ...

  2. Direct2D教程(三)简单几何图形

    从本章开始,我们介绍D2D几何图形. D2D图形分类 Direct2D支持多种类型的几何图形,包括Simple Geometry(简单几何图形) 矩形 圆角矩形 椭圆 Path Geometry(路径 ...

  3. linux mysql-server can't find mysql_config

    linux mysql-server can't find mysql_config Ask Question up vote7down votefavorite 3 I have a running ...

  4. 20. Spring Boot Servlet【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/52069482 Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可 ...

  5. require.js使用

    无可奈何,二开项目用了require.js! 一道槛是挨不过去了 require官网: http://requirejs.org/ require.js cdn: <script src=&qu ...

  6. Codeforces Beta Round #1 A. Theatre Square

    从今天開始.就要在Codeforces里有一个新的開始了,貌似任务非常重的说~~ Codeforces专题我将会记录全部通过的题目,事实上仅仅要通过的题目都是水题啊!. 题目大意: 依照要求计算须要多 ...

  7. 可空类型Nullable

    Nullable类型: 值类型变量默认为0,不可空,为了使它可空,出现了Nullable类型,类型前面加?  变为引用类型 值类型是没有null值的,比如int,DateTime,它们都有默认值.举个 ...

  8. 微信热补丁 Tinker 的实践演进之路

    http://dev.qq.com/topic/57ad7a70eaed47bb2699e68e http://dev.qq.com/topic/57a30878ac3a1fb613dd40eb ht ...

  9. ipython notebook 如何打开.ipynb文件?

    标签: pythontensorflow 2017-03-29 14:17 235人阅读 评论(0) 收藏 举报  分类: TensorFlow(13)  转自:https://www.zhihu.c ...

  10. 怎么样获得泛型T的Class对象?

    public class GenClass<T> { private Class<T> entityClass; } public class Test { public st ...