[Python 学习笔记] 9: Class
2009-10-13 00:00:00 来源:WEB开发网核心提示: 重载Python 支持一些特殊方法和运算符重载,>>>classClass1:def__init__(self):self.i=0def__str__(self):return"id=%i"%id(self)def__add__(self,other):re
重载
Python 支持一些特殊方法和运算符重载。
>>> class Class1:
def __init__(self):
self.i = 0
def __str__(self):
return "id=%i" % id(self)
def __add__(self, other):
return self.i + other.i
>>> a = Class1()
>>> a.i = 10
>>> str(a)
'id=13876120'
>>> b = Class1()
>>> b.i = 20
>>> a + b
30
通过重载 "__eq__",我们可以改变 "==" 运算符的行为。
>>> class Class1:
pass
>>> a = Class1()
>>> b = Class1()
>>> a == b
False
>>> class Class1:
def __eq__(self, x):
return True
>>> a = Class1()
>>> b = Class1()
>>> a == b
True
Open Class
这是个有争议的话题。在 Python 中,我们随时可以给类型或对象添加新的成员。
1. 添加字段
>>> class Class1:
pass
>>> a = Class1()
>>> a.x = 10
>>> a.x
10
>>> dir(a)
['__doc__', '__module__', 'x']
>>> b = Class1()
>>> dir(b)
['__doc__', '__module__']
>>> del a.x
>>> dir(a)
['__doc__', '__module__']
更多精彩
赞助商链接