Python 中的 exec()
函数
exec()
是 Python 中的一个强大的内置函数,它允许你执行任意 Python 代码,不论其大小。这个函数帮助我们执行动态生成的代码。想象一下 Python 解释器接收一段代码,内部处理并执行它,exec()
函数也是这样做的。
1. 动态执行字符串形式的 Python 代码
exec()
函数可以接受一个字符串形式的 Python 代码,并将其执行。通常,这段代码是从文件、自动生成或在程序运行时获取的。让我们看看如何使用 exec()
:
code = "print('Hello, World!')"
exec(code) # 执行字符串形式的 Python 代码
2. 使用编译的代码对象
除了字符串,exec()
还可以接受一个编译的代码对象作为参数。编译的代码对象是 Python 内部的一种表示形式,通常由解释器将 Python 代码转换为字节码时生成。
compiled_code = compile("print('Hello, World!')", "<string>", "exec")
exec(compiled_code) # 执行编译的代码对象
3. 注意安全性
虽然 exec()
非常强大,但使用不当可能导致安全问题。避免直接从不受信任的源获取代码,以防止潜在的风险。
Python 中的 filter()
函数
filter()
是 Python 中的另一个内置函数,用于从可迭代对象(如列表、元组等)中筛选满足特定条件的元素。这个过程通常称为过滤操作。使用 filter()
,你可以应用一个筛选函数到可迭代对象上,并生成一个新的可迭代对象,其中包含满足条件的元素。
1. 筛选偶数
numbers = range(10)
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 输出:[0, 2, 4, 6, 8]
2. 筛选以’A’开头的字符串
fruits = ['Apple', 'Banana', 'Orange']
filtered_fruits = list(filter(lambda x: x.startswith('A'), fruits))
print(filtered_fruits) # 输出:['Apple']
3. 返回迭代器
filter()
函数返回一个迭代器,你可以将其转换为列表、元组或集合来查看筛选结果。