python一些定制方法(函数)

__str__() __call__() __repr__()方法

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

    def __call__(self):
        print(‘My name is %s.‘ % self.name)
    def __str__(self):
	return ‘I am a print call for name:%s !‘%self.name
    def __repr__(self):
	return ‘I am a print var value for name:%s !‘%self.name

>>> s = Student(‘lucy‘)
>>> s     //call __repr__()
I am a print var value for name:lucy !
>>> s()   // call __call__()
My name is lucy.
>>> print s    //call __str__()
I am a print call for name:lucy !

  


 __str__是调用print 打印,
__repr__是直接写变量时打印的

__iter__()方法

如果一个类想被用于for ... in循环,类似list或tuple那样,就必须实现一个__iter__()方法

__getitem__()方法

要表现得像list那样按照下标取出元素,需要实现__getitem__()方法

__getattr__()方法

那就是写一个__getattr__()方法,动态返回一个属性
class Student(object):

    def __init__(self):
        self.name = ‘Michael‘

    def __getattr__(self, attr):
        if attr==‘score‘:
            return 99  raise AttributeError(‘\‘Student\‘ object has no attribute \‘%s\‘‘ % attr) //调用不存在的属性是,抛出
>>> s = Student()
>>> s.name
‘Michael‘
>>> s.score
99
本节介绍的是最常用的几个定制方法,还有很多可定制的方法,请参考Python的官方文档。http://docs.python.org/2/reference/datamodel.html#special-method-names
时间: 2024-08-30 17:59:40

python一些定制方法(函数)的相关文章

Python内置方法/函数

abs() 返回数字的绝对值. abs(x) all() 用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False. 元素除了是 0.空.None.False 外都算 True. all(iterable) #iterable -- 元组或列表 >>> all([1,2,0]) False >>> all([1,2,1]) True any() 用于判断给定的可迭代参数 iterable 是否全部为 Fals

Python的字符串方法/函数

S.find()#可指定范围查找字串,返回索引值,否则返回-1 S.index()#同find,只是找不到的之后返回异常 S.count()#返回找到字串的个数 S.lower()#转小写 S.capitalize()#首字母大写 S.upper()#转大写 S.swapcase()#大小写互换 S.split()#j将string转list,默认以空格切分 S.join()#将list转string 处理字符串的内置函数 len(str)    #返回字符串的长度 cmp(str,str)#字

举例详解Python中的split()函数的使用方法

这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下 函数:split() Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)os.path.split():按照路径将文件名和路径分割开 一.函数说明1.split()函数语法:str.

python列表里__setslices__方法函数解析a

先看看列表里的__setslice__方法函数的帮助文档 help(list.__setslice__) 帮助文档如下所示: __setslice__(...) x.__setslice__(i, j, y) <==> x[i:j]=y Use of negative indices is not supported. 从帮助文档可以看出这个方法函数可以通过列表切片的方式来使用(运算映射函数).举例说明一下: In [1]: li = range(1, 11) In [2]: li Out[2

Python列表操作的函数和方法

http://www.jb51.net/article/47978.htm 列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.Python有6个序列的内置类型,但最常见的是列表和元组.序列都可以进行的操作包括索引,切片,加,乘,检查成员.此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法. Python列表操作的函数和方法列表操作包含以下函数:1.cmp(list1, list2):比较两个列表的

Python入门二:函数

一.函数的定义和使用 1.基本结构: 1 def 函数名(参数): 2 """ 3 文档字符串 4 """ 5 函数体 6 返回值 7 2.函数名: 和变量名命名规则一致,最好不要与内置函数名相同 3.参数: 和C/C++不同,参数无需指定类型,直接交由解释器去判断: 对于number, str, tuple等不可变的对象,相当于传值,即是传递了拷贝 对于list,dict,set等可变对象,相当于引用传递,内部更改会影响外部的值 a.普通参数:

python学习——定制类

看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数. 除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类. __str__ 我们先定义一个Student类,打印一个实例: >>> class Student(object): ... def __init__(self, name):

Python 的一些方法

有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling). 你可以把它当作一个教程,进阶,或者使用参考:我希望它能够成为一份针对 Python 方法的用户友好指南. 1.介绍 这份指南是几个月内最有价值的 Blog 投稿精华.它的主题是向大家讲述 Python 中的神奇方法. 何为神奇方法呢?它们是面向 Python 中的一切,是一些特殊的方法允许在自己的定义类中定义增加"神奇&

python的魔术方法大全

在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”(魔术方法),例如类的初始化方法 __init__ ,Python中所有的魔术方法均在官方文档中有相应描述,这边给大家把所有的魔术方法汇总了起来进行说明,希望对大家的学习有所帮助. python的魔术方法大全 魔法方法 含义 基本的魔法方法 __new__(cls[, ...]) 1. __new__ 是在一个对象实例化的时候所调用的第一个方法 __init__(self[, ...]) 构造器,当一个实例