#!/usr/bin/env python
# -*- coding: utf-8 -*-# a class definition
class MyClass:"""一个简单的类定义 A Simple Example Class"""i = 1234  #类的成员变量 def f(self):#类的成员函数return "Hello World"x = MyClass()
print MyClass.__doc__
print x.__doc__#显示定义一个类的初始化方法
class Complex:def __init__(self, realpart, imagpart):self.r = realpartself.i = imagpartx = Complex(3.0, -4.5)
print x.r, x.i
x.counter = 2 #instance attribute
print x.counter # print Complex.counter将出错
del x.counter#类的成员函数也可以在外部定义
def f1(self, x, y):return min(x, x+y)class C:f = f1def g(self):return 'hello world'h = g
#这样C.f C.h C.g都是合法的函数对象#在类的函数定义中,可以使用self引用类的其他成员变量或函数对象
class Bag:def __init__(self):self.data = []def add(self, x):self.data.append(x)def addtwice(self, x):self.add(x)self.add(x)#继承与多重继承
class BaseClassName:passclass DerivedClass(BaseClassName):passclass BaseClassName2:passclass DerivedClass2(BaseClassName, BaseClassName2):pass#实用方法isintance issubclass
d = DerivedClass2()
print isinstance(d, BaseClassName)
print issubclass(DerivedClass2, BaseClassName2)#私有变量
#在python中,没有真正意义上的私有概念,一般约定命名中以下划线开头的变量或函数为私有的。
class Mapping:def __init__(self, iterable):self.items_list = []self.__update(iterable)def update(self, iterable):for item in iterable:self.items_list.append(item)__update = update   # private copy of original update() methodclass MappingSubclass(Mapping):def update(self, keys, values):# provides new signature for update()# but does not break __init__()for item in zip(keys, values):self.items_list.append(item)#类似C中的结构体的使用
class Employee:passjohn = Employee() # Create an empty employee record# Fill the fields of the record
john.name = 'John Doe'
john.dept = 'computer lab'
john.salary = 1000#在python中,用户自定义的异常也被认为是类
#有两种形式raise Class, instance 和 raise instance
class B:pass
class C(B):pass
class D(C):passfor c in [B, C, D]:try:raise c()except D:print "D"except C:print "C"except B:print "B"#迭代器的实现
class Reverse:"""Iterator for looping over a sequence backwards."""def __init__(self, data):self.data = dataself.index = len(data)def __iter__(self):return selfdef next(self):if self.index == 0:raise StopIterationself.index = self.index - 1return self.data[self.index]rev = Reverse('spam')
for char in rev:print char#产生器
def reverse(data):for index in range(len(data)-1, -1, -1):yield data[index]for char in reverse('golf'):print char

转载于:https://my.oschina.net/fuyajun1983cn/blog/263794

python面向对象代码示例相关推荐

  1. python入门代码示例-总算知道python入门代码示例

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python.以下是小编为你整理 ...

  2. Python面向对象基础示例_创建对象

    Python面向对象基础示例_创建对象 python是面向对象的语言,你可以很轻松的创建一个类和对象.本书代码源自<<Python 3 Object-Oriented Programmin ...

  3. python代码示例-总算知道python入门代码示例

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python.以下是小编为你整理 ...

  4. python怎么反转单链表_单链表反转python实现代码示例

    单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可. 代码: class Li ...

  5. python爬虫代码示例分享

    这篇文章主要介绍了三个python爬虫项目实例代码,使用了urllib2库,文中示例代码非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下. python爬虫代码示例分享 一. ...

  6. python编程代码示例_python编程线性回归代码示例

    用python进行线性回归分析非常方便,有现成的库可以使用比如:numpy.linalog.lstsq例子.scipy.stats.linregress例子.pandas.ols例子等. 不过本文使用 ...

  7. python软件代码示例-python 示例代码1

    第一章 python基础一 ​在此不再赘述为什么学习python这门编程,网上搜索一箩筐.我在此仅说一句python的好,用了你就会爱上它. 本python示例代码1000+带你由浅入深的了解pyth ...

  8. python运行代码示例_python程序样例

    <Python和HDF 5大数据应用>--2.2 设置 本节书摘来自异步社区<Python和HDF 5大数据应用>一书中的第2章,第2.2节,作者[美]Andrew Colle ...

  9. [数值计算-9]:一元非线性函数求导数(数值微分)- 解析法与迭代法Python法代码示例

    作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article ...

最新文章

  1. 3.1.1蛮力法之选择排序
  2. 自己整理的shell笔记
  3. html编译器nvu,开源的网页编辑器Nvu
  4. python的应用范围有哪些_Python主要应用场景有哪些?
  5. P5305-[GXOI/GZOI2019]旧词【树链剖分,线段树】
  6. ida调试linux程序,MAC使用IDA PRO远程调试LINUX程序
  7. 新增两款Skin(clover与Valentine)
  8. java properties文件 安全_java 数据库读取工具类(读取config.properties配置文件)[包含线程安全] | 学步园...
  9. MySQL Range Optimization
  10. 下一代AirPods可能就可以监测你的健康状况了
  11. php-fpm启动条件,php-fpm的启动、重启
  12. linux 查看系统位数命令,怎么用命令行查看Linux系统位数
  13. 常用的字符串对象方法
  14. 11.文件与文件系统的压缩与打包
  15. Java文件压缩加密
  16. 华为Ascend:进一步做好产品差异化是后续重点
  17. 比 Elasticsearch 更快!RediSearch + RedisJSON = 王炸
  18. 读懂Wi-Fi 6:看这本白皮书就够了!(附全文下载)
  19. SSL证书绑定了顶级域名后二级域名还需再申请吗
  20. 小学教师资格证计算机知识,小学老师教师资格证复习内容是什么 小学教师资格证考试笔试必备知识点...

热门文章

  1. XHTML学习资料(四)—— 图像
  2. 续篇:新型Lamda版Html.RenderAction
  3. apache开启 gzip 压缩
  4. “Python来玩微信跳一跳”教程(问题总结)
  5. php连接数据库提示could not find driver 问题解决
  6. iOS 利用JSPatch 添加热补丁功能
  7. 第30本:《怎样解题》
  8. 使用RSClientPrint直接打印本地RDLC报表
  9. Internet Explorer 8 Beta2 常见问题解答
  10. 解决Eclipse中SVN图标不显示