zoukankan      html  css  js  c++  java
  • python execfile/exec函数(35)

     

     

    前言

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

     

    一.execfile/exec函数简介

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

    函数功能介绍:

        内置函数exec可以动态的执行复杂的代码片段;

        内置函数exec可以执行py文件中的python代码;

     

        参数介绍:

             source — py文件内容或者代码段;

            globals — 缺省参数,默认为空,变量作用域,全局命名空间,如果被提供,则必须是一个字典对象;

             locals — 缺省参数,默认为空,变量作用域,局部命名空间,如果被提供,可以是任何映射对象;

        返回值 — 返回值永远是None;

     

     

    二.execfile/exec函数使用

        1.exec函数执行代码段

    # !usr/bin/env python
    # -*- coding:utf-8 _*-
    """
    @Author:何以解忧
    @Blog(个人博客地址): shuopython.com
    @WeChat Official Account(微信公众号):猿说python
    @Github:www.github.com
     
    @File:python_exec.py
    @Time:2019/12/16 21:25
     
    @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
    """
     
     
    x = 100
    source_code = """
    z = 30
    sum = x + y + z   #一大包代码
    print(x,y,z,sum)
    """
    def main():
        y = 20
        a = exec(source_code)   # 100+20+30
        b = exec(source_code,{'x':10,'y':20}) # 10+20+30
        c = exec(source_code,{'x':10,'y':20},{'y':3,'z':4}) # 10+3+30,x是定义全局变量1,y是局部变量
        print(a,b,c) # exec返回值永远都是 None
     
    if __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文件,内容如下:

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

    with open('e://test.txt','r') as f:
        exec(f.read())

    输出结果:

    70
    shuopython.com

     

     

     

    猜你喜欢:

        1.python匿名函数lambda

        2.python map函数

        3.python eval函数

        4.python input函数

     

        转载请注明:猿说Python » python execfile/exec函数

     

    技术交流、商务合作请直接联系博主
    扫码或搜索:猿说python
    python教程公众号
    猿说python
    微信公众号 扫一扫关注
  • 相关阅读:
    常用的几个vagrant命令
    window下sh文件在linux转码
    centos 7 免密登录
    centos7系列-给普通用户sudo权限
    Hadoop hdfs完全分布式搭建教程
    ribbon的注解使用报错--No instances available for [IP]
    修改VirtualBox虚拟机默认存储路径及虚拟机迁移方法
    【SpringMVC】文件上传Expected MultipartHttpServletRequest: is a MultipartResolver错误解决
    发现不错待研究的技术
    android的开发 华为手机上不显示menu键
  • 原文地址:https://www.cnblogs.com/shuopython/p/12181518.html
Copyright © 2011-2022 走看看