gpt4 book ai didi

python - python中的eval和exec有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:03 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
What’s the difference between eval, exec, and compile in Python?

我知道

  1. eval 是一个 function
  2. exec 是一个 statement

两者的简单用法是:

eval('1+2')
exec 'print 1+2'

但是还有其他的用法我看不懂。

  1. 使用一个变量来存储一个函数名,并使用这个变量来调用函数
    例如:

    def test():
    print 'hello world'
    func = 'test'
    func = eval(func)
    func() # this will call test()

    我在
    之后输入(func) func = eval(func)
    它返回
    <type 'function'>
    我阅读了eval的文档,但我不知道为什么 eval 可以做这个。

  2. 使用变量存储模块名称,并使用此变量导入模块。
    例如。

    m = 'sys'
    exec "import " + m

    是不是这个原因:
    import module_name是语句,不是表达式?
    和:
    eval只计算一个表达式
    exec是否运行 str 中的语句?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com