美文网首页
2018-01-25

2018-01-25

作者: extanstory | 来源:发表于2018-01-26 09:12 被阅读0次

1 【装饰器】
def func_arg(arg):
    def func(functionName):
        def func_in():
            print("---记录日志-arg=%s--"%arg)
            if arg=="heihei":
                functionName()
            else:
        return func_in
    return func
 
#1. 先执行func_arg("heihei")函数,这个函数return 的结果是func这个函数的引用
#2. @func
#3. 使用@func对test进行装饰
@func_arg("heihei")
def test():
    print("--test--")
 
#带有参数的装饰器,能够起到在运行时,有不同的功能
@func_arg("haha")
def test2():
    print("--test2--")
 
test()
test2()
------------------------------------------------------------------------------------------------------------------------------------------------------------------
def func(functionName):
    def func_in(*args, **kwargs):
        print("-----记录日志-----")
        ret = functionName(*args, **kwargs)
        return ret
    return func_in

@func
def test():
    print("----test----")
    return "haha"
 
@func
def test2():
    print("----test2---")
@func
def test3(a):
    print("-----test3--a=%d--"%a)
ret = test()
print("test return value is %s"%ret)
a = test2()
print("test2 return value is %s"%a)
test3(11)

2 【作用域】
globels查看全局 
locals 查看局部
LEGB规则

3【python是动态语言】
动态增加属性方法
object.addNewPro
class.addNewPro
object.test = types.MethodType.(test,object)
object.test()
@statucmethod 
@classmethod 
class.test = test
class.test()

4【__ slots__】
__slots__ = (xxx,xxx)
保证不在新添加属性

5【生成器】
(x for x in range(10)):
yeild 
send/next

相关文章

网友评论

      本文标题:2018-01-25

      本文链接:https://www.haomeiwen.com/subject/jjimaxtx.html