《python类的专用方法实例分析》由会员分享,可在线阅读,更多相关《python类的专用方法实例分析(7页珍藏版)》请在金锄头文库上搜索。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解Python类的专用方法实例分析本文实例讲述了Python类的专用方法。分享给大家供大家参考。具体分析如下:Python 类可以定义专用方法,专用方法是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)。1. _init_类似于构造函数复制代码 代码如下:#!/usr/local/bin/pythonclass Study:def _init_(self,name=None):self.name = na
2、medef say(self):print self.namestudy = Study(Badboy)study.say()2. _del_类似于析构函数复制代码 代码如下:#!/usr/local/bin/pythonclass Study:def _init_(self,name=None):self.name = namedef _del_(self):print Iamaway,baby!def say(self):print self.namestudy = Study(zhuzhengjun)study.say()3. _repr_使用repr(obj)的时候,会自动调用_rep
3、r_函数,该函数返回对象字符串表达式,用于重建对象,如果eval_r(repr(obj)会得到一个对象的拷贝。复制代码 代码如下:#!/usr/local/bin/pythonclass Study:def _init_(self,name=None):self.name = namedef _del_(self):print Iamaway,baby!def say(self):print self.namedef _repr_(self):return Study(jacky)study = Study(zhuzhengjun)study.say()print type(repr(Stud
4、y(zhuzhengjun) # strprint type(eval_r(repr(Study(zhuzhengjun) # instancestudy = eval_r(repr(Study(zhuzhengjun)study.say()4. _str_Python能用print语句输出内建数据类型。有时,程序员希望定义一个类,要求它的对象也能用print语句输出。Python类可定义特殊方法_str_,为类的对象提供一个不正式的字符串表示。如果类的客户程序包含以下语句:复制代码 代码如下:print objectOfClass那么Python会调用对象的_str_方法,并输出那个方法所返
5、回的字符串。复制代码 代码如下:#!/usr/local/bin/pythonclass PhoneNumber:def _init_(self,number):self.areaCode=number1:4self.exchange=number6:9self.line=number10:14def _str_(self):return (%s) %s-%s%(self.areaCode,self.exchange,self.line)def test():newNumber=raw_input(Enter phone number in the form. (123) 456-7890:
6、n)phone=PhoneNumber(newNumber)print The phone number is:print phoneif_name_=_main_:test()方法_init_接收一个形如(xxx) xxx-xxxx的字符串。字符串中的每个x都是电话号码的一个位数。方法对字符串进行分解,并将电话号码的不同部分作为属性存储。方法_str_是一个特殊方法,它构造并返回PhoneNumber类的一个对象的字符串表示。解析器一旦遇到如下语句:复制代码 代码如下:print phone就会执行以下语句:复制代码 代码如下:print phone._str_()程序如果将PhoneNum
7、ber对象传给内建函数str(如str(phone),或者为PhoneNumber对象使用字符串格式化运算符%(例如%s%phone),Python也会调用_str_方法。5. _cmp _比较运算符,0:等于 1:大于 -1:小于复制代码 代码如下:class Study:def _cmp_(self, other):if other 0 :return 1elif other return - 1else:return 0study = Study()if study -10:print ok1if study if study = 0:print ok3打印:ok2 ok3说明:在对类进
8、行比较时,python自动调用_cmp_方法,如-10 6. _getitem_getitem_ 专用方法很简单。象普通的方法 clear,keys 和 values 一样,它只是重定向到字典,返回字典的值。复制代码 代码如下:class Zoo:def _getitem_(self, key):if key = dog:return dogelif key = pig:return pigelif key = wolf:return wolfelse:return unknownzoo = Zoo()print zoodogprint zoopigprint zoowolf打印:dog pi
9、g wolf7. _setitem_setitem_ 简单地重定向到真正的字典 self.data ,让它来进行工作。复制代码 代码如下:class Zoo:def _setitem_(self, key, value):print key=%s,value=%s % (key, value)zoo = Zoo()zooa = azoob = bzooc = c打印:key=a,value=akey=b,value=bkey=c,value=c8. _delitem_delitem_ 在调用 del instancekey 时调用,你可能记得它作为从字典中删除单个元素的方法。当你在类实例中使用 del 时,Python 替你调用 _delitem_ 专用方法。复制代码 代码如下:class A:def _delitem_(self, key):print delete item:%s %keya = A()del akey希望本文所述对大家的Python程序设计有所帮助。对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表