python基础~知识点补充系列

一 知识点1-类
   1 类内的函数互相调用时可以先调用再进行声明
   2 当函数调用的时候直接调用self.function()即可
   3 凡是函数参数出现self以外的形参结不是类属性
   4 元组接收掉函数的多个返回值()
   5 类的属性也可以是其他类的实例化对象
     eg: class Stu:
           def __init__(self,name,age):
             self.name=name
             self.age=age
             self.db=DB()
         def printTotal(self):
            self.printName_Age() 
            def printName_Age(self):
            print("我叫")
二 知识点2-函数作用
   dict.has_key(key) 查找字典指定key是否存在返回逻辑值
三 知识点3-装饰器
   1 装饰器的本质就是传递函数或者类,然后通过修饰,返回值是函数/类本身,目的是增加额外功能 
   2 通用场景(1 函数执行时间 2 登录/权限认证 3 日志记录)
   3 基本调用代码‘
       def 装饰器_name(需要装饰的函数名function_name):
             def function2_name(*args):
                   装饰逻辑
                   return function_name(*args) #函数带括号代表执行,不带括号代表传递函数本身
             return function2_name
       @装饰器_name
        function_name()
    4 装饰器本身也可以携带参数  
def use_logging(level):
    def decorator(func):
        def wrapper(*args, **kwargs):
            if level == "warn":
                logging.warn("%s is running" % func.__name__)
            elif level == "info":
                logging.info("%s is running" % func.__name__)
            return func(*args)
        return wrapper
    return decorator
@use_logging(level="warn") #调用的时候就可以携带参数,在django flask中很多验证权限的场景中可以看到此类带参的装饰器
def foo(name='foo'):
    print("i am %s" % name)

foo()

原文地址:https://www.cnblogs.com/danhuangpai/p/13750903.html