6.1 Day24
一.装饰器
装饰器: 为原函数扩展新功能,用新功能去替代旧功能
作用 : 在不改变原有代码的基础上,实现功能上的扩展
符号 : @(语法糖)
1.装饰器的基本用法
def kuozhan(func):
def newfunc():
print("厕所前,蓬头垢面")
func()
print("厕所后,精神气爽")
return newfunc
def func():
print("我叫高富帅")
2.@符号的使用
@符号作用:
(1) 可以自动把@符号下面的函数当成参数传递给装饰器
(2) 把新函数进行返回,让新函数去替换旧函数,以实现功能的扩展.
# func = newfunc <=> func() = newfunc()
3.用装饰器修饰带有参数的函数,扩展的新功能和原函数的功能,在参数和返回值上,要保持一致性.
二.面向对象中的方法
普通方法: 可以有参数,或者无参数,当场正常的函数调用
绑定方法: (1) 绑定到对象(自动传递参数为对象) (2) 绑定到类(自动传递参数为类)
静态方法: 无论是对象还是类,都可以调用,不会默认传递任何参数
三.property
property 可以把方法变成属性使用
作用: 控制属性的获取,设置,删除操作
变相的增加的成员的安全性.可以通过自定义逻辑对成员进行控制
自动触发: 要求:是同一个名字
获取 @property
设置 @属性名.setter
删除 @属性名.deleter
四.反射 (针对于类对象,模块)
概念: 通过字符串去操作类对象 或者 模块当中的成员(属性方法)
1.反射类对象中的成员
hasattr() 检测对象/类是否有指定的成员
getattr() 获取对象/类成员的值
setattr() 设置对象/类成员的值
delattr() 删除对象/类成员的值
2.反射模块中的成员
sys.modules 返回一个系统的字典,加载系统模块展现出来

浙公网安备 33010602011771号