目录
🍔 Python迭代器是什么?什么场景⽤到迭代器?举⼀个例⼦?
🍔 Python⽣成器是什么?什么场景⽤到迭代器?举⼀个例⼦?
🍔 请写⼀段Python代码实现删除⼀个list⾥⾯的重复元素
🍔 请设计⼀个decorator,它可作⽤于任何函数上,并打印该函 数的执⾏时间。
🍔 你知道深浅拷⻉的区别吗?
- 浅拷⻉: 拷⻉的是对象的引⽤,如果原对象改变,相应的拷⻉对象也会发⽣改变
- 深拷⻉: 拷⻉对象中的每个元素,拷⻉对象和原有对象不在有关系,两个是独⽴的对象
- 直接赋值:其实就是对象的引⽤(别名)。
- 浅拷⻉(copy):拷⻉⽗对象,不会拷⻉对象的内部的⼦对象。
- 深拷⻉(deepcopy): copy 模块的 deepcopy ⽅法,完全拷⻉了⽗对象及其⼦对象。
🍔 字典反转,列表反转的实现?
- 列表的反转:reversed 函数、sorted函数、切⽚技术、循环,递归,四种⽅式
- 字典的反转:循环,推导式,压缩器三种⽅式
列表反转:

字典反转:
🍔 装饰器是什么,什么场景⽤到装饰器,举个例⼦?
装饰器(Decorator)是⼀种结构型设计模式,它可以动态地给⼀个对象添加额外的职责,同时⼜不改变其原有的接⼝和实现。通俗地说,就是通过组合的⽅式,为对象添加新的⾏为或特性。在Python语⾔中,装饰器是⼀种语法糖,可以通过定义函数或类来实现。装饰器可以⽤于很多场景。
场景举例:1)⽇志记录:可以定义⼀个装饰器函数,⽤于在函数调⽤时记录⽇志信息,如函数的参数、返回值等。2)性能分析:可以定义⼀个装饰器函数,⽤于在函数调⽤时计算函数的执⾏时间,以便进⾏性能优化。3)权限校验:可以定义⼀个装饰器函数,⽤于在函数调⽤时进⾏⽤户权限校验,以确保只有具有相应权限的⽤户可以访问该函数。
下⾯是⼀个装饰器的例⼦,⽤于记录函数的执⾏时间:
import time
def time_it(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 {func.__name__} 执⾏时间为:{end_time - start_time} 秒")
return result
return wrapper
@time_it
def my_function():
time.sleep(2)
print("Hello, World!")
my_function()
在这个例⼦中,我们定义了⼀个装饰器函数