python代码的特点_Python类的特性方法

Python 类可以定义的专用方法。专用方法是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)。

6.5.1    __init__

类似于构造函数。

6.5.2    __del__

类似于析构函数

6.5.3    __repr__

使用repr(obj)的时候,会自动调用__repr__函数,该函数返回和eval()兼容的对象字符串表达式,用于重建对象,如果eval(repr(obj))会得到一个对象的拷贝。

class A:

def __repr__(self):

return 'A()'

x = A()

print repr(x)

b = eval(repr(x)) # 拷贝对象a

print b

6.5.4    __str__

返回一个字符串用于描述字符串本身。

6.5.5    __cmp __

比较运算符,0:等于 1:大于 -1:小于

class Dog:

def __cmp__(self, other):

if other > 0 :

return 1

elif other < 0:

return - 1

else:

return 0

dog = Dog()

if dog > -10:print 'ok'

if dog < -10:print 'ok'

if dog == 0:print 'ok'

class Zoo:

def __getitem__(self, key):

if key == 'dog':return 'dog'

elif key == 'pig':return 'pig'

elif key == 'wolf':return 'wolf'

else:return 'unknown'

zoo = Zoo()

print zoo['dog']

print zoo['pig']

print zoo['wolf']

输出结果:ok    ok

6.5.6    __getitem__

__getitem__ 专用方法很简单。象普通的方法 clear,keys 和 values 一样,它只是重定向到字典,返回字典的值。

输出结果:dog    pig        wolf

6.5.7    __setitem__

__setitem__ 简单地重定向到真正的字典 self.data ,让它来进行工作。

class Zoo:

def __setitem__(self, key, value):

print 'key=%s,value=%s' % (key, value)

zoo = Zoo()

zoo['a'] = 'a'

zoo['b'] = 'b'

zoo['c'] = 'c'

输出结果:dog    pig        wolf

key=a,value=a

key=b,value=b

key=c,value=c

6.5.8    __delitem__

class A:

def __delitem__(self, key):

print 'delete item:%s' % key

a = A()

del a['key']

分享到:

sina.jpg

tec.jpg

2009-04-28 11:33

浏览 2005

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值