目录
1、匿名函数
匿名函数,也被称为Lambda函数,是一种在Python中定义简单函数的方式,它没有函数名。这种函数通常用作一次性的、简单的函数定义。
匿名函数的使用可以简化代码,并且在某些情况下更具可读性。然而,由于其定义的简洁性,匿名函数通常只用于一些简单的操作.
add = lambda x, y: x + y
print(add(2, 3)) # 输出结果为 5
2、with语句
with
语句是用于简化资源管理的一种Python语法结构。它提供了一种在使用完资源后自动清理和释放资源的方式,无需显式地调用资源的关闭方法。with
语句可以用于处理文件、数据库连接、网络连接等需要手动关闭的资源。
with open('a.txt','w') as f:
f.write('hello world')
# 对文件进行处理 不需要手动关闭文件
3、 左移、右移运算符
<< :左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。
>> :右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
4、异常类
在Python中,有许多常见的内置异常类可用于处理各种错误情况。 例如:
-
Exception:所有异常类的基类。
-
ValueError:数值错误,当传递给函数的参数类型正确但值不合适时引发。
-
TypeError:类型错误,当操作或函数应用于不适当类型的对象时引发。
-
FileNotFoundError:文件不存在错误,当试图打开一个不存在的文件时引发。
-
IndexError:索引错误,当使用无效的索引访问序列或集合时引发。
try: x = 10 / 0 except ZeroDivisionError: print("除以零发生错误")
我们可以捕获并处理该异常。
5、python上下文管理器
上下文管理器是一个对象,它定义了在进入和离开某个作用域时要执行的操作。通过实现上下文管理器协议,可以使用with
语句来自动管理资源的获取和释放。上下文管理器使用__enter__()
方法在进入上下文前执行一些操作,并使用__exit__()
方法在离开上下文时执行清理操作。
6、python异常上下文
当一个异常被抛出时,它会携带一些附加信息,例如异常的类型、值和追溯信息等。这些信息有助于我们理解异常的来源和上下文,并帮助调试和处理异常。
7、with语句自定义类
要将一个自定义类用作上下文管理器,在该类中需要实现__enter__()
和__exit__()
方法。__enter__()
方法在进入上下文时被调用,而__exit__()
方法在离开上下文时被调用。
class Context:
def __enter__(self):
# 执行进入上下文前的操作
print("进入上下文")
return self
def __exit__(self, exc_type, exc_value, traceback):
# 执行离开上下文后的清理操作
print("离开上下文")
def some(self):
print("在上下文中执行操作")
# 使用自定义的上下文管理器
with Context() as f:
f.some()
8、__new__
__new__
是python中一个魔法方法,它用于创建一个对象实例。__new__
方法会在对象被创建之前调用。
在类的定义中,可以实现__new__
方法来自定义对象的创建方式。__new__
方法接受的参数包括类本身和传递给类的额外参数。它负责创建并返回一个新的对象实例。
9、__iter__
__iter__
是python中的一个魔法方法,用于定义一个可迭代对象。当类实现__iter__
方法时,可以使用for
循环和其他迭代工具来遍历该对象。
在类的定义中,__iter__
方法需要返回一个迭代器对象。迭代器对象是一个实现了__iter__
和__next__
方法的对象,在每次迭代时返回下一个元素。
10、使用__new__和__iter__
class Iter:
def __new__(cls, *args, **kwargs):
# 自定义对象创建逻辑
instance = super().__new__(cls)
# 可在此处添加其他自定义逻辑
return instance
def __init__(self, data):
self.data = data
def __iter__(self):
return self._iterator()
def _iterator(self):
for item in self.data:
yield item
# 创建可迭代对象
iterable = Iter([1, 2, 3, 4, 5])
# 使用for循环遍历可迭代对象
for i in iter:
print(i)
11、redis数据类型
-
字符串(String):最基本的数据类型,可以存储文本、数字等。
-
列表(List):字符串集合,可以包含重复元素,可以在列表的头部或尾部执行添加、删除、更新等操作。
-
集合(Set):无序的字符串集合,不允许重复元素,可以执行集合的并、交、差等操作。
-
有序集合(Sorted Set):有序的字符串集合,每个元素关联一个分数,可以根据分数进行排序,元素不允许重复。
-
哈希表(Hash):键值对集合,允许存储多个属性和属性值的关联数据。
-
位图(Bitmap):由字符串类型表示的位序列,支持对位操作。
-
HyperLogLog:用于进行基数估计的数据结构,用于统计唯一元素数量的近似值。
-
地理位置(Geospatial):存储地理位置信息的数据类型,支持对位置进行附近搜索、距离计算等操作。
-
流(Stream):高级的日志数据结构,支持按时间顺序存储和检索数据。
-
布隆过滤器(Bloom Filter):一种高效的数据结构,用于判断元素是否存在于集合中。