首页Python【Python内置函数】e...

【Python内置函数】eval()函数

Python 提供了许多内置函数,这些函数是Python语言的一部分,可以直接在Python程序中使用而无需导入任何模块。

本系列将会陆续整理分享一些的Python内置函数。

文章配套代码获取有以下两种途径:
  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Python_built-in_functions





01
简介

eval() 函数用于将一个字符串表达式解析并执行。
使用 eval() 函数时需要小心,因为它会执行字符串中的代码,如果字符串来自不可信的源,可能会导致安全问题。

eval() 函数的基本语法如下:

val(source, /, globals=Nonelocals=None)
参数说明:
  • source:字符串表达式,该表达式会被计算并执行;
  • globals:可选参数,字典格式,用于指定全局命名空间。如果省略,则使用当前的全局命名空间;
  • locals:可选参数,字典格式,用于指定局部命名空间。如果省略,则使用当前的局部命名空间。

返回值:

eval() 函数返回表达式计算的结果。

02
使用

下面是一些使用 eval() 函数的示例:

  • 示例 1:基本使用


# 计算数学表达式
result = eval('2 + 3 * 4')
print(result)
# 输出 14

# 使用变量
x = 5
result = eval('x * 2')
print(result)
# 输出 10


  • 示例 2:使用globals和locals参数


# 使用全局和局部变量
y = 10

# 在 globals 中定义 y
result_1 = eval('x + y', {'x': 5 , 'y': y})

# 在 locals 中定义 y
result_2 = eval('x + y', {'x': 5}, {'y': 20})

print(result_1)
# 输出 15
print(result_2)
# 输出 25

class ExpressionEvaluator:
    # 类级别的全局变量
    global_var = 100

    def __init__(self, local_var):
        # 实例级别的局部变量
        self.local_var = local_var

    def evaluate(self, expression):
        # 使用 eval() 函数计算表达式
        # 提供类级别的全局变量和实例级别的局部变量作为上下文环境
        result = eval(expression, {'global_var': ExpressionEvaluator.global_var}, {'local_var': self.local_var})
        return result

# 创建 ExpressionEvaluator 实例,传入局部变量的值
evaluator = ExpressionEvaluator(local_var=50)

# 计算表达式
expression = 'global_var + local_var'
result = evaluator.evaluate(expression)

print(result)
# 输出 150

本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments