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. 怎样查看class文件的jdk版本号

    1.事先编译好一个class文件.如:TestVersion.class 2.使用UltraEdit或Editplus打开class文件,我这里使用的editplus,如图: 3.打开时Encodin ...

  2. 虚拟机stack全分析

    通过jps -lv 获取到本地的一个JVM实例进程.再通过jstack pid  > thread.txt ,把stack trace输出到thread.txt文件中. 2012-08-28 2 ...

  3. lftp mirror 上传目录

    1. lftp的确很强大, 要学习一下.       sudo yum install lftp       (测试了一下,ftp软件才92K,lftp有2.3M) 2. lftp mirror 能上 ...

  4. opencv实现gamma灰阶检測

    简单介绍 本篇解说使用opencv来測试,表示camera gamma參数的灰阶卡图片指标:YA Block.DynamicRange.Gray Scale. 详细实现 实现代码 #include & ...

  5. 【VMware】宿主机连接wifi,虚拟机中的Linux系统配置连接wifi

    环境描述 宿主机:Windows 10 64bit 虚拟机:Centos 第一步:虚拟机设置 选择连接方式为NAT 第二步:设置宿主机的wifi 控制面板>>网络和Internet> ...

  6. 【Oracle】函数

    函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数. 语法 create [or replace] function func_name[(parameter1,[,parame ...

  7. 【LeetCode】【Python题解】Reverse Integer

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to ...

  8. 如何判断微信内置浏览器(JS & PHP)

    转自:http://blog.wpjam.com/m/is_weixin/ 为什么要进行判断呢?answer:微信授权登录,微信支付都可以 微信内置浏览器的 User Agent 如何判断微信内置浏览 ...

  9. HDUOJ ----1709

    The Balance Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  10. HDUOJ----(2612)Find a way

    Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...