WEB开发网
开发学院软件开发Python [Python 学习笔记] 9: Class 阅读

[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__']

上一页  1 2 3 4 5 6 7  下一页

Tags:Python 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接