Python常用知识点/面试题(装饰器、*args,**kwargs、lambda函数)

参考文章:
https://blog.csdn.net/xun527/article/details/78317132
https://blog.csdn.net/weixin_40862231/article/details/79504455

1.*args,**kwargs的作用是什么?如何使用?

*args**kwargs通常使用在函数定义里.
如果我们不确定要往函数中传入多少个非关键字参数,或者我们想往函数中以列表 和元组/tuple的形式传参数时,那就使要用*args

如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用**kwargs

args和kwargs这两个标识符是约定俗成的用法。

2.什么是lambda函数?他有什么好处?

lambda函数是匿名函数;使用lambda函数能够创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。例:

 f = lambda x,y:x+y  
 求两个函数的和。 x,y是参数,x+y是函数返回值

3.介绍一下except的用法和作用?

捕获【try except】中间代码发生的异常,如果发生异常执行except的代码,不管是否发生异常都执行finally中的代码。
except可以有0个或多个,如果有多个从上到下依次根据异常类型匹配,匹配某个Exception则执行对应的except中代码

try:
	pass
except Exception as e:
	print(e)
finally:
	pass

4.装饰器

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。
功能:1.引入日志;2.函数执行时间统计;3.执行函数前预备处理;4.执行函数后清理功能;5.权限校验;6.缓存

5.创建一个装饰器将下面函数输入的字符串首字母大写。

from functools import wraps
def start_word_upper(func):
    @wraps(func)
    def inner(*args,**kwargs):
        word = func(*args,**kwargs)
        return word.capitalize()
    return inner 
@start_word_upper
def greetins(word='hi there'):
    return word.lower()

装饰器可以在:
 1.函数调用之前对函数参数进行操作,直接返回被装饰函数的返回值

 2.对返回值进行‘装饰’并返回(本题案例)

在这里插入图片描述
6. 请写一段python代码,替换掉目标字符串中的[北京市,技术,有限,公司]等字符,比如:目标字符串:北京市麦达技术数字有限公司,要求替换输出 麦达数字。

str1 = "北京市麦达技术数字有限公司"
str2 = str1.replace("北京市","").replace("技术","").replace("有限","").replace("公司","")
print(str2)

在这里插入图片描述
7.列表a,请写出实现正序排列,倒序排列,逆序排列的内置方法。
在这里插入图片描述
8.复杂列表[{“k”:1,“v”:2},{“k”:12,“v”:22},{“k”:13,“v”:32}],请用内置方法写出k的倒序排列的代码。

li = [{"k":1,"v":2},{"k":12,"v":22},{"k":13,"v":32}]
li.sort(key=lambda dict:dict["k"],reverse=True)
print(li)

在这里插入图片描述
9.请阐述__new__和__init__的区别?

__new__:创建对象时调用,会返回当前对象的一个实例

__init__:创建完对象后调用,对当前对象的一些实例初始化,无返回值

调用顺序:先调用__new__生成一个实例,再调用__init__方法对实例进行初始化,比如添加属性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

留在风中的巧克力

今天天气很好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值