python专用类方法使用的实例教程
1.__getitem__专用方法
1 >>> map = {'name':'c小加'} 2 >>> map.__getitem__("name") 3 'c\xe5\xb0\x8f\xe5\x8a\xa0'
只是重定向到字典,返回字典的值
2.__setitem__专用方法
>>> map = {'name':'c小加'} 2 >>> map.__setitem__('monaker','队花') 3 >>> map 4 {'monaker': '\xe9\x98\x9f\xe8\x8a\xb1', 'name': 'c\xe5\xb0\x8f\xe5\x8a\xa0'}
map实际上是一个类,它尽可能的扮成一个字典,就像C 小加,尽可能的扮作队花,虽然他是个男的。
>>> map['monaker'] = '队花' >>> map {'monaker': '\xe9\x98\x9f\xe8\x8a\xb1', 'name': 'c\xe5\xb0\x8f\xe5\x8a\xa0'} 这个看上去像个正常的字典语法,这行代码实际上暗自调用了map.__setitem__('monaker','队花')
在类中覆盖__setitem__方法严格按照与父类方法相同的形式进行定义。参数的名字没关系,只是个数。同时直接调用父类的时候,尽管没有__setitem__.但是Python会沿着父类树走,知道找到我们正在调用方法的类。
3 .__repr__ 是一个专用的方法,在当调用 repr(instance) 时被调用。repr
函数是一个内置函数,它返回一个对象的字符串表示。它可以用在任何对象上,不仅仅是类的实例。你已经对 repr
相当熟悉了,尽管你不知道它。在交互式窗口中,当你只敲入一个变量名,接着按ENTER,Python 使用 repr
来显示变量的值。自已用一些数据来创建一个字典 d ,然后用 print repr(d) 来看一看吧。
4.__cmp__ 在比较类实例时被调用。通常,你可以通过使用 == 比较任意两个 Python
对象,不只是类实例。有一些规则,定义了何时内置数据类型被认为是相等的,例如,字典在有着全部相同的关键字和值时是相等的。对于类实例,你可以定义
__cmp__ 方法,自已编写比较逻辑,然后你可以使用 == 来比较你的类,Python 将会替你调用你的 __cmp__ 专用方法。
5.__len__ 在调用 len(instance) 时被调用。len 是一个内置函数,可以返回一个对象的长度。它可以用于任何被认为理应有长度的对象。字符串的
len 是它的字符个数;字典的 len 是它的关键字的个数;列表或序列的 len 是元素的个数。对于类实例,定义 __len__
方法,接着自已编写长度的计算,然后调用 len(instance),Python 将替你调用你的 __len__ 专用方法。
6.__delitem__ 在调用 del instance[key] 时调用 ,你可能记得它作为从字典中删除单个元素的方法。当你在类实例中使用 del 时,Python 替你调用 __delitem__ 专用方法。
专用方法意味着任何类 可以像字典一样保存键-值对,只要定义 __setitem__ 方法。任何类可以表现得像一个序列,只要定义
__getitem__ 方法。任何定义了 __cmp__ 方法的类可以用 == 进行比较。并且如果你的类表现为拥有类似长度的东西,不要定义
GetLength 方法,而定义 __len__ 方法,并使用 len(instance)。
【相关推荐】
1. 深入了解python中的特殊函数 __len__(self)
4. Python魔术方法__getitem__、__setitem__、__delitem__、__len__分别介绍
以上就是python专用类方法使用的实例教程的详细内容,更多请关注其它相关文章!
推荐阅读
-
在A文件中使用$this->display()调用另外一个类文件的方法,应该如何做
-
增多PHP的内存限制方法 还有个人关于静态类的使用的观点
-
PHP使用反射机制实现查找类和方法的所在位置,php所在位置_PHP教程
-
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
-
php使用SAE原生Mail类实现各种类型邮件发送的方法
-
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
-
PHP使用反射机制实现查找类和方法的所在位置
-
PHP使用Mysqli类库实现完美分页效果的方法
-
Java AtomicInteger类的使用方法详解
-
使用Java7的Files工具类和Path接口来访问文件的方法