目录

  • 一.前言
  • 二.Python eval 与 exec 函数简介
  • 三.Python eval 与 exec 函数使用
    • 1.exec 函数执行代码段
    • 2.exec 函数执行 py 文件
  • 四.猜你喜欢

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

一.前言

Python 内置函数 execfile 和 内置函数 exec 功能实际上都一样,不过函数 execfile 是 python2.0 版本,函数 exec 属于 Python3.0 版本,在使用的时候注意区分一下,具体使用方法参考下面的详细介绍。

二.Python eval 与 exec 函数简介

  • 内置函数 exec 可以动态的执行复杂的代码片段;
  • 内置函数 exec 可以执行 py 文件中的 Python 代码;

由于现在的 Python2.0 版本已经停止更新,我们主要介绍 Python3.0 版本的内置函数 exec ,其实两个函数的参数都一样,名字不同而已,语法如下:

'''
参数介绍:source — py文件内容或者代码段;globals — 缺省参数,默认为空,变量作用域,全局命名空间,如果被提供,则必须是一个字典对象;locals — 缺省参数,默认为空,变量作用域,局部命名空间,如果被提供,可以是任何映射对象;返回值:返回值永远是None;
'''exec(source, globals=None, locals=None)

三.Python eval 与 exec 函数使用

1.exec 函数执行代码段

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python eval 与 exec 函数.py
@Time:2021/04/29 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""x = 100
source_code = """
z = 30
sum = x + y + z   #一大包代码
print(x,y,z,sum)
"""
def main():y = 20a = exec(source_code)   # 100+20+30b = exec(source_code,{'x':10,'y':20}) # 10+20+30c = exec(source_code,{'x':10,'y':20},{'y':3,'z':4}) # 10+3+30,x是定义全局变量1,y是局部变量print(a,b,c) # exec返回值永远都是 Noneif __name__ == "__main__":main()'''
输出结果:100 20 30 150
10 20 30 60
10 3 30 43
None None None
'''

代码分析:source_code 是一个复杂的代码片段,而内置函数 exec 一样能动态执行,比内置函数 eval 更加强悍哟!

2.exec 函数执行 py 文件

内置函数 exec 除了能执行复杂的代码片段,还可以执行 py 文件中的 Python 代码,举个栗子:假如有 test.txt 文件,内容如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python eval 与 exec 函数.py
@Time:2021/04/29 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# e:/test.txtdef main():x = 20y = 50print(x+y)print("www.codersrc.com")if __name__ == "__main__":main()

然后使用内置函数 exec 执行这个 txt 文件的 Python 代码:

with open('e://test.txt','r') as f:exec(f.read())'''
输出结果:70
www.codersrc.com
'''

四.猜你喜欢

  1. Python for 循环
  2. Python 字符串
  3. Python 列表 list
  4. Python 元组 tuple
  5. Python 字典 dict
  6. Python 条件推导式
  7. Python 列表推导式
  8. Python 字典推导式
  9. Python 函数声明和调用
  10. Python 不定长参数 *argc/**kargcs
  11. Python 匿名函数 lambda
  12. Python return 逻辑判断表达式
  13. Python 字符串/列表/元组/字典之间的相互转换
  14. Python 局部变量和全局变量
  15. Python type 函数和 isinstance 函数区别
  16. Python is 和 == 区别
  17. Python 可变数据类型和不可变数据类型
  18. Python 浅拷贝和深拷贝

未经允许不得转载:猿说编程 » Python eval 与 exec 函数

Python eval 与 exec 函数 - Python零基础入门教程相关推荐

  1. Python eval 与 exec 函数的区别 - Python零基础入门教程

    目录 一.Python eval 与 exec 函数的区别 二.价值 10 个亿的智能机器人核心代码 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Py ...

  2. Python eval 与 exec 函数区别 - Python零基础入门教程

    目录 一.Python eval 与 exec 函数的区别 二.价值 10 个亿的智能机器人核心代码 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Py ...

  3. Python零基础入门教程( 快速入门)

    前言 学无止境,无止境学. 今天要给大家分享的是<Python零基础入门教程01 快速入门>,这是一个系列的教程,从零基础到项目实战.在本教程中,我会给大家介绍Python入门的一些基础知 ...

  4. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  5. 视频教程-Python零基础入门教程-Python

    Python零基础入门教程 从2012年从事互联网至今有7年软件编程经验,曾任职国内北京互联网公司,中南林业大学授课Python 现任逻辑教育Python课程负责人,精通Python语言,精通人工智能 ...

  6. C语言 const 修饰函数参数 - C语言零基础入门教程

    C语言 const 修饰函数参数 - C语言零基础入门教程 目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数 ...

  7. 视频教程-ARDUINO零基础入门教程【代码编程篇】-Arduino

    ARDUINO零基础入门教程[代码编程篇] 精通各种单片机编程,有十年以上ARDUINO,51单片机/STM32/PIC/AVR编程,硬件设计,绘图,编程经验.熟悉各种常用传感器使用和物联网通讯 赵勇 ...

  8. C++零基础入门教程:基础篇(一)

    前言 嘿嘿,我叕来啦─=≡Σ(((つ•̀ω•́)つ!别问我为什么突然变成了零基础入门教程(一),因为前面那三篇都是基础的不能在基础的教程了.(其实是因为顺序乱了,而且那时候没有单独弄一个专栏,后面我会 ...

  9. SEO零基础入门教程(外链的发布和软文编写)

    seo的作用是众所周知的,对网站进行seo优化,可以给网站带来大量的搜索引擎流量.但是想要做好网站优化也有难度,尤其是对于seo新手来说,因为缺乏理论和实战,所以seo新手需要多加练习.那么具体seo ...

最新文章

  1. 图像处理怎么学matlab,Matlab数字图像处理学习(1)-亮度变换
  2. 【自然语言处理】正向、逆向、双向最长匹配算法的 切分效果与速度测评
  3. shell连接工具_无需本地软件,只用浏览器就能连接并控制安卓手机
  4. nodejs开发——require与exports的使用
  5. PYPL 7月榜单公布:Java份额出现下降趋势
  6. metronic 4.5.7开发环境下, 在Windows 10上安装了10.16.0版本的node js之后,导致node sass无法加载...
  7. 鸿蒙JSFA 使用 WebView
  8. Python将类对象转换为json
  9. ItelliJ IDEA下载及获取注册码详解
  10. Java设计模式--抽象工厂模式
  11. Windows电脑安装Linux系统的方法-Ubuntu版
  12. layui 弹窗自适应高度_layui弹框自适应高度
  13. php整数型转字符串,php如何将整数转为字符串
  14. 计算机网络考研知识点整理,计算机网络考研知识点
  15. ADT下载地址(含各版本),最新ADT-23.0.7
  16. 视频加水印的软件有哪些?这几款软件可以无痕去水印
  17. 电脑“减负”必备,分享一款优秀的重复文件查找工具
  18. python去除重复单词_Python重复的单词
  19. Linux启动过程——EFI
  20. 在微信小程序中制作的登录功能一定要考虑不同的入口问题

热门文章

  1. 怀里橘猫柴犬,掌上代码江湖——对话阿里云MVP郭旭东
  2. AutoScaling 成本优化模式升级--混合实例策略
  3. 一次开发、多端分发,阿里巴巴发布AliOS车载小程序
  4. 三大院士、十大数据库掌门人,岳麓对话开启数字经济新时代!
  5. 真正的程序员,从来不会告诉你这些事!
  6. 物联网火爆,入门却太难了!
  7. Spark精华问答 | 怎么运行Spark?
  8. 打印n×n数字方阵python_2020华为春招amp;#8211;N阶方阵旋转(python) - 易采站长站
  9. 1.在c 语言中字符型占,C程序设计试题1.doc
  10. powershell快捷键_借助Windows Terminal搞一个花里胡哨的PowerShell终端