1.什么是定制类
python中包含很多内置的(Built-in)函数,异常,对象。
分别有不同的作用,我们可以重写这些功能。

2.__str__
输出对象

class Language(object):
def __init__(self):
self.name = 'Python' print(Language())

运行结果:

class Language(object):
def __init__(self):
self.name = 'Python'
def __str__(self):
return "Language():%s"%(self.name)
print(Language())

运行结果:

3.__iter__
遍历对象

class Language(object):
def __init__(self):
self.name = 'Python'
self.count = 0 def __iter__(self):
return self def __next__(self):
self.count += 1
if self.count > 5:
raise StopIteration()
return self.count
language = Language()
for i in language:
print(i)

运行结果:

__iter__返回的是迭代对象language
for..in..会自动调用__iter__迭代对象的__next__方法,直到__next__方法返回StopIteration异常。

4.__getitem__
定义了__getitem__方法后才能使用索引取值

class Language(object):
def __getitem__(self, item):
return item language = Language()
print(language[0])

运行结果:

5.__getattr__
没有找到属性时,才会调用__getattr__

class Language(object):
def __init__(self):
self.name = 'Python' def __getattr__(self, item):
if item == 'score':
return 9
elif item == 'rank':
return lambda :5 language = Language()
print(language.score)
print(language.rank())

运行结果:

6.__call__
对象可执行

class Language(object):
def __init__(self):
self.name = 'Python' def __call__(self, *args, **kwargs):
print('My name is %s'%self.name) language = Language()
language()

运行结果:

python定制类详解的更多相关文章

  1. Python 元类详解

    一.Type介绍 在Python中一切皆对象,类它也是对象,而元类其实就是用来创建类的对象(由于一切皆对象,所以元类其实也是一个对象). 先来看这几个例子: 例1: In [1]: type(12) ...

  2. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  3. Python基础知识详解 从入门到精通(七)类与对象

    本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...

  4. Python 多进程 multiprocessing.Pool类详解

    Python 多进程 multiprocessing.Pool类详解 https://blog.csdn.net/SeeTheWorld518/article/details/49639651

  5. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息.        ...

  6. (转)python collections模块详解

    python collections模块详解 原文:http://www.cnblogs.com/dahu-daqing/p/7040490.html 1.模块简介 collections包含了一些特 ...

  7. python自定义异常实例详解

    python自定义异常实例详解 本文通过两种方法对Python 自定义异常进行讲解,第一种:创建一个新的exception类来拥有自己的异常,第二种:raise 唯一的一个参数指定了要被抛出的异常 1 ...

  8. 《python开发技术详解》|百度网盘免费下载|Python开发入门篇

    <python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby  内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...

  9. python之struct详解

    python之struct详解 2018-05-23 18:20:29 醉小义 阅读数 20115更多 分类专栏: python   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议 ...

随机推荐

  1. netsh学习

    show allowedprogram –显示被允许的程序配置 show config - 显示防火墙的配置 show currentprofile -显示 Windows 防火墙的当前配置文件. s ...

  2. Swift教程_swift常见问题(0005)_完美解决Cannot override &#39;dealloc&#39;异常

    Swift教程_swift常见问题(0001)_CoreData: warning: Unable to load class named 'xxx' for entity 'xxx' Swift教程 ...

  3. hdoj-1251-统计难题【map】

    统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submiss ...

  4. 使用quartz进行容器启动时登陆接口服务器和接口服务器进行心跳连接

    1.下载quartz的相应jar包 2.增加spring配置文件(applicationContext-quartz.xml) 内容如下: <?xml version="1.0&quo ...

  5. (转)CATALINA_BASE与CATALINA_HOME的区别

    到底CATALINA_HOME和CATALINA_BASE有什么区别呢,之前因为都是小打小闹的在服务器上安装一个tomcat就得了,然后根据前人的配置,将CATALINA_HOME和CATALINA_ ...

  6. 从 高斯 到 正态分布 到 Z分布 到 t分布

    正态分布是如何被高斯推导出来的, 我感觉高斯更像是猜出了正态分布. 详见这篇文章:<正态分布的前世今生> http://songshuhui.NET/archives/76501 说一说理 ...

  7. 訪问可能没有定义的data (通过static类型flash.net:FileReference引用)

    今天使用Flex实现了图片预览及其上传的功能,在整个开发过程中遇到了"訪问可能没有定义的data (通过static类型flash.net:FileReference引用)"错误, ...

  8. Spring MVC Beginner’s Guide勘误表

    - 17 submitted: last submission 09 Dec 2016 Page number: 213 Qauntity should be: Quantity Page numbe ...

  9. eclipse svn登陆用户保存信息删除

    win7系统 eclipse svn saveinfo path:磁盘:\%用户名%\AppData\Roaming\Subversion\auth\svn.simple 例如:D:\Users\用户 ...

  10. WCF中可以使用SVCUtil.exe生成客户端代理类和配置文件

    1.找到如下地址“C:\Windows\System32\cmd.exe”  命令行工具,右键以管理员身份运行(视系统是否为win7 而定)         2.输入如下命令: C:\>cd C ...