一 知识点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()