1.封装
将不对外的私有属性或方法通过可对外使用的函数而使用(类中定义私有的,只有类内部使用,外部无法访问)
2.装饰器
def check_str(func):
print('func',func)
def inner(*args,**kwargs):
print('args',args,kwargs)
result=func(*args,**kwargs)
if result == 'ok':
return 'result is %s' %result
else:
return 'result is failed:%s'%result
return inner
@check_str
def test(data):
return data
result = test('no')
print(result)
result = test('ok')
print(result)
3.类中的装饰器
(1)classmethod
将类函数可以不经过实例化而直接被调用
class Test(object):
def __init__(self,a):
self.a = a
def run(self):
print('run')
@classmethod
def dump(cls):
print('dump')
t = Test('a')
t.run()
Test.dump()
(2)staticmethod
(3) property