装饰器,内置函数

一.装饰器

'''
装饰器:python 独有
目的:不改变原函数就给原函数添加功能
核心:闭包,@装饰器语法糖
1.定义基本函数。实现功能
2.编写闭包
3.加工原始数据
4.给闭包添加权限
5.函数调用
6.@装饰器语法糖
案例:
时间开销
权限校验
装饰器距离函数越近先装饰

'''

# def login_required(f):
#     def check():
#         username = input("输入用户名")
#         if username == "admin":
#             f()
#         else:
#             print("用户校验失败")
#     return check
#
# #@装饰器语法糖
# @login_required
# def index():
#     print("欢迎来到首页")
# @login_required
# def cart():
#     print("欢迎来到购物车")
# @login_required
# def mine():
#     print("欢迎来到我的中心")
#
# # 函数调用
# index()
# mine()
# cart()

def login_required(f):
def check():
username = input("输入用户名")
if username == "admin":
f()
else:
print("权限校验失败")

return check

def time_cost(f):
def cost():
start = time.time()
f()
print("花费", time.time() - start)
return cost

# 装饰器距离函数越近越先装饰
#@login_required
@time_cost
@login_required
def index():
print(f"我是第一个完整的函数")
index()

二.内置函数

'''
python自带函数 builtins
'''

# len()长度
print(len([1,2,3]))
# divmod()整除和求余 结果是元组(整除,求余)
print(divmod(100,3)) #(33,1)
# abs 绝对值
print(abs(-50))
#pow次方
print(pow(2, 3))
#round 四舍五入
print(round(3.4))
# import math
# print(math.ceil(3.1))
# print(math.floor(3.1))


#最大最小
print(max([10,20,30]))
print(max([{"age": 15}, {"age": 5}, {"age": 25}], key=lambda x: x["age"]))
print(min([{"age": 15}, {"age": 5}, {"age": 25}], key=lambda x: x["age"]))


# all(可迭代内容)
# 所有元素都是真就为真 空也是真
print(all([1,2,True]),all([]))
# any(可迭代内容)
# 所有元素都是假,结果是假 空是假
print(any(['',0,False]),any([]))

# 进制 bin() 十进制转二进制
print(bin(10)) #0b1010
# hex 将十进制转换成十六进制
print(hex(100))
# oct 将十进制转换成八进制



# callable()可调用
print(callable(10), callable(lambda x: x))


# ascii
# chr()数字转字母
# ord()字母转数字
print(chr(97), chr(98), ord("A"), ord("Z"))
# sortedm 排序,根据ascii排序
print(sorted("helloa"))


# 局部与全局字典
#locals 返回所有局部变量
#globals 返回全局变量
num = 100
s0 = "hello"
def f():
i = 99
result2 = locals()
print(result2)
f()
result = globals()
print(result)


#输入与输出
# input 输入
# print 输出


#id 返回对象的唯一标识(地址)


#delattr 删除属性
#getattr 获取属性
#hasattr 是否有属性
#setattr 设置属性

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值