您的位置:首页 > 运维架构

@staticmethod @classmethod @property使用【1】

2016-05-08 22:32 471 查看
class ClassStaticMethod(object):
def func1(self):
print "实例的方法"

@classmethod
def class_method(clss):
print "定义的类方法"

@staticmethod
def static_method():
print "定义的静态方法"
###################################
#访问实例方法
fClass = ClassStaticMethod()
fClass.func1()#通过实例调用

ClassStaticMethod().func1()#直接通过类的方式调用

####################################
#访问类方法
ClassStaticMethod.class_method()

class ClassStaticMethod2(ClassStaticMethod):#继承ClassStaticMethod类
@classmethod
def class_method(self):
print self
print "ClassStaticMethod2 object 类方法"
#<span style="font-family: Arial, Helvetica, sans-serif;">会调用子类的方法并传递的是子类的类对象</span>
fClass2 = ClassStaticMethod2()
fClass2.class_method()

ClassStaticMethod2.class_method()

####################################
#访问静态方法
fClass3 = ClassStaticMethod()
fClass3.static_method()#使用实例调用

ClassStaticMethod.static_method()#直接静态方式调用


class Property(object):
def __init__(self):
self.__num = None
# 同一属性__num的三个函数名要相同
@property
def num(self):
return self.__num

@num.setter
def num(self,value):
self.__num = value

@num.deleter
def num(self):
del self.__num

if __name__ == '__main__':
pro = Property()
pro.num = 100
value = pro.num
print value

del pro.num
print value
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python