[Python 学习笔记] 9: Class
2009-10-13 00:00:00 来源:WEB开发网-----------------------
除了静态(类型)字段,我们还可以定义静态方法。
>>> 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'
更多精彩
赞助商链接