lambda 表达式

在 Python 中,可以通过 lambda 表达式来便捷地定义一个功能简单的函数,这个函数只有实现没有名字,所以叫作匿名函数。

lambda 参数1, 参数2, 参数N: 函数实现

拆包

a, *b = (1, 2, 3, 4)
# a 为 1,b 为 [2, 3, 4]
*a, b = (1, 2, 3, 4)
# a 为 1,b 为 [2, 3, 4]

切片

chars = [a, b, c, d, e]
chars[1:3] # [‘b’, ‘c’]
chars[:3] # [‘a’, ‘b’, ‘c’]
chars[3:] # [‘d’, ‘e’]
chars[:] # [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
chars[1:-2] # [‘b’, ‘c’]
chars[-3:-1] # [‘c’, ‘d’]

if 三元表达式

结果1 if 条件 else 结果2

for else 语句

for i in range(5):
    print(i)
else:
    print('所有项被迭代使用')

如果循环被 break 就不会执行 else 里的语句。

while else 语句

i = 0
while i < 5:
    print(i)
    i += 1
else:
    print('这是 else 语句')

如果循环被 break 就不会执行 else 里的语句。

try except else 语句

try:
    pass
except:
    print('有异常发生,不执行 else 语句')
else:
    print('没有异常发生,执行 else 语句')

如果 try 下有异常抛出,则不执行 else 语句。如果没有异常抛出,则执行 else 语句。

@property

class A:
    @property
    def apple(self):
        return 'apple'

a = A()
a.apple # 'apple'

被 @property 装饰的方法,可以像属性一样被使用。但是有一个限制,这个属性是只读的,不能被修改。如果修改将会报错。

让这个 apple 属性变得可修改:

class A:
    def __init__(self, name):
        self._apple = name

    @property
    def apple(self):
        return self._apple

    @apple.setter
    def apple(self, value):
        self._apple = value

自定义异常

自定义异常的方式很简单,只需要定义一个类,这个类继承自 Exception 类或其子类即可。如:

class FileParseException(Exception):
    pass

类型标注

可以为函数的加上参数类型标注,以及返回值类型标注。

def say_hello2(name: str) -> str:
    word = 'hello, ' + name
    return word