转载请注明出处http://blog.csdn.net/liygcheng/article/details/22905439
我们先来看一个简单的例子:
#author liygcheng 2014-04-04
#object-oriented python
class Animal():
def __init__(self):
self.__name = "Animal"
print(self.__name)
def accessMethod(self):
print("I am a animal,and my name is:")
print(self.__name)
print("\n The Additional message is:")
self.__innerAccess()
def __innerAcess():
print("this can not be seen!")
@staticmethod
def staticMethod():
print("this is a static method!")
@property #python中的属性设置
def name(self):
return self.__name
@name.setter
def name(self, value):
self.__name = value
@name.deleter
def name(self):
del self.__name
例子中的其他问题暂且先不考虑,因为我在编译的时候,出了问题,总是会出现“IndentationError: unindent does not match any outer indentationlevel”这样的错误,在网上一查之后发现原来是混用了Tab键和空格。。下面我们开始看看代码中出现的一些知识点:
私有函数和静态方法在之前的类介绍中详细阐述过,此不再赘述,这里我们把重点放在这个@property这里,
在C++或者Java中,我们经常会遇到setter和getter,在这里@property的作用类似,需要注意的是,这里面的同一属性的三个函数要同名(本例中指的是name),当我们在运用的时候,就可以根据需要,例如是否只读等进行设置。其实除此之外,在python2.6之前,还有一种绑定的方法,先来看一个例子:
那么另一种绑定的方法是什么呢?我们来看一下: