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

[Python 学习笔记] 9: Class

 2009-10-13 00:00:00 来源:WEB开发网   
核心提示: ---除了静态(类型)字段,我们还可以定义静态方法,[Python 学习笔记] 9: Class(4),>>>classClass1:@staticmethoddeftest():print"staticmethod">>>Class1.t

-----------------------

除了静态(类型)字段,我们还可以定义静态方法。

>>> class Class1:
  @staticmethod
  def test():
    print "static method"
    
>>> Class1.test()
static method

-----------------------

从设计的角度,或许更希望用属性(property)来代替字段(field)。

>>> class Class1:
  def __init__(self):
    self.__i = 1234
  def getI(self): return self.__i
  def setI(self, value): self.__i = value
  def delI(self): del self.__i
  I = property(getI, setI, delI, "Property I")
  
>>> a = Class1()
>>> a.I
1234
>>> a.I = 123456
>>> a.I
123456

如果只是 readonly property,还可以用另外一种方式。

>>> class Class1:
  def __init__(self):
    self.__i = 1234  
  @property
  def I(self):
    return self.__i
  
>>> a = Class1()
>>> a.I
1234

-----------------------

用 __getitem__ 和 __setitem__ 可以实现 C# 索引器的功能。

>>> class Class1:
  def __init__(self):
    self.__x = ["a", "b", "c"]
  def __getitem__(self, key):
    return self.__x[key]
  def __setitem__(self, key, value):
    self.__x[key] = value
    
>>> a = Class1()
>>> a[1]
'b'
>>> a[1] = "xxxx"
>>> a[1]
'xxxx'

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

Tags:Python 学习 笔记

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