Python中5个你可以能不知道的知识

1. Python中的关键字

在Python中,有37个关键字,这些关键字是Python语言保留的,不能够赋值给变量或作为函数名、类名等标识符使用。

1.1 查看关键字

Python中可以使用关键字模块查询所有关键字:

import keyword

print(keyword.kwlist)

执行以上代码会输出Python中的所有关键字:

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

1.2 关键字的使用

关键字除了不能当做标识符使用外,其余使用方法和普通变量名、函数名等没有区别。例如:

# 可以使用True和False作为条件判断

flag = True

if flag:

print('flag is True')

else:

print('flag is False')

以上代码中使用了True和False作为条件判断。

2. lambda函数

lambda函数也称为匿名函数,其本质是一种函数定义,但是没有函数名。lambda函数主要用于需要一个函数,但是这个函数非常简单,只使用一次,定义一个函数的过程过于繁琐,因此直接使用lambda函数来简化代码。

2.1 lambda函数定义

lambda函数的定义格式如下:

lambda arguments: expression

其中arguments是函数的参数列表,expression是函数的返回值表达式。

2.2 lambda函数的使用

lambda函数可以直接赋值给一个变量或作为参数传入其他函数中使用。例如:

# lambda函数赋值给变量

f = lambda x: x**2

print(f(3))

# lambda函数作为参数传入其他函数

l = [1, 2, 3, 4, 5]

result = list(map(lambda x: x**2, l))

print(result)

以上代码中,第一个例子定义了一个lambda函数并将其赋值给变量f,第二个例子将lambda函数作为参数传入map函数中使用。

3. Python指定参数

Python中函数定义中可以包含参数列表,调用函数时需要传入这些参数,但是有时候希望用关键字的方式来指定参数,在调用函数时指定某些参数的值,这种方式称为指定参数。

3.1 指定参数的语法

指定参数的语法为:

def function_name(fixed_arg, *args, **kwargs):

pass

其中,fixed_arg是必须的参数,*args表示可变数量的无名参数,**kwargs表示可变数量的关键字参数。

3.2 指定参数的使用

使用指定参数时,可以在调用函数时直接指定某个参数的值,例如:

def func(a, b, c):

print(a, b, c)

# 使用指定参数指定c的值

func(1, 2, c=3)

以上代码中,调用func函数时通过c=3指定了参数c的值。

4. Python中的装饰器

装饰器是Python中一种常用的语法,其本质是对函数进行包装,用于增加函数的功能,例如日志记录、性能统计、事务处理等。

4.1 装饰器的语法

以函数装饰器为例,其语法格式如下:

def decorator_func(original_func):

def wrapper_func(*args, **kwargs):

# 在这里添加装饰器的功能代码

return original_func(*args, **kwargs)

return wrapper_func

@decorator_func

def original_func():

# 原始函数代码

pass

其中,decorator_func是装饰器函数,original_func是需要包装的函数,@decorator_func表示将original_func传入decorator_func中装饰。

4.2 装饰器的使用

装饰器函数可以用于增加函数的功能,例如增加函数运行时间的装饰器:

import time

def runtime_decorator(original_func):

def wrapper_func(*args, **kwargs):

start_time = time.time()

result = original_func(*args, **kwargs)

end_time = time.time()

print(f'Function {original_func.__name__} run time is {end_time - start_time}')

return result

return wrapper_func

@runtime_decorator

def test_func(seconds):

time.sleep(seconds)

test_func(1)

test_func(2)

以上代码中,增加了一个计算运行时间的装饰器函数runtime_decorator,调用test_func时将其传入装饰器中。

5. Python中的字符串格式化

在Python中,字符串可以使用format方法进行格式化,用花括号{}表示替换的部分,花括号内部可以是一个数字、一个变量等。

5.1 字符串格式化的语法

字符串格式化语法为:

"{} {}".format(arg1, arg2)

其中arg1、arg2是要格式化的部分,可以是数字、变量、字符串等。

5.2 字符串格式化的使用

字符串格式化可以用于打印日志、字符串拼接等场景,例如:

# 使用多个参数传入参数

print("My name is {} and age is {}".format('Tom', 18))

# 使用指定名称的参数传入参数

print("{name} is a {job}".format(name='Tom', job='teacher'))

# 使用对象属性传入参数

class Person:

def __init__(self, name, age):

self.name = name

self.age = age

person = Person('Tom', 18)

print("My name is {0.name} and age is {0.age}".format(person))

以上代码中,分别演示了使用多个参数、指定名称、对象属性等方式进行字符串格式化。

后端开发标签