首页 > 编程语言 >python--compile、exec、eval函数使用

python--compile、exec、eval函数使用

时间:2023-08-04 12:13:07浏览次数:38  
标签:code exec python compile single eval print

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

参数说明:
source:字符串或AST对象,表示需要进行编译的python代码
filename:指定需要编译的代码文件,如果不是文件读取代码则传递一些可辨认的值.
mode:用于标识必须当做那类代表来编译; (如果source是由一系列代码序列组成,则指定mode='exec’;如果source由单个表达式组成, 则指定mode='eval’;如果source是由一个单独的交互式语句组成,则指定modo='single’)
flags:变量作用域,局部命名空间,如果被提供,可以是任何映射对象
flags和dont_inherit:是用来控制编译源码时的标志

# 一段代码块
s1 = """
for i in range(8):
    if i % 2 == 0:
        print(i)
"""
# 一句命令
s2 = '2+10'
# 执行交互式命令
s3 = 'input("请输入用户名: ")'

code_exec = compile(s1, '<string>', 'exec')  # 执行一段代码块
code_eval = compile(s2, '<string>', 'eval')  # 执行一句代码
code_single = compile(s3, '<string>', 'single')  # 执行交互式命令

print('code_exec: ', exec(code_exec))
print('code_eval: ', eval(code_eval))
print('exec_code_single: ', exec(code_single))
print('eval_code_single: ', eval(code_single))

结果:

标签:code,exec,python,compile,single,eval,print
From: https://www.cnblogs.com/yanlin-10/p/17605539.html

相关文章

  • python调用RabbitMQ
    本文不涉及较难的操作,仅仅提供常用的生产消息和消费消息的方式。--好像也没啥花里胡哨的操作1、准备想要python调用rabbitMQ需要安装pika,所有需要提前安装好pika包#全局pipinstallpika;#如果用的anaconda的上面那个装不上可以试试这个?condainstallpika;2、代......
  • python 操作oracle
    表DDL--"C##TAPDATA_TEST".ALAM3definitionCREATETABLE"C##TAPDATA_TEST"."ALAM3"( "UID1"VARCHAR2(100)NOTNULLENABLE, "UID2"VARCHAR2(100)NOTNULLENABLE, "COLUMN1"VARCHAR2(100),......
  • 希尔排序的Python实现,并逐行解释代码
    当然,我可以为您提供希尔排序的Python实现,并逐行解释代码。以下是一个示例:defshell_sort(arr):n=len(arr)gap=n//2#初始化间隔whilegap>0:foriinrange(gap,n):temp=arr[i]j=i#对间隔为gap......
  • Python爬虫遇到重定向问题解决办法汇总
    在进行Python爬虫任务时,遇到重定向问题是常见的问题之一。重定向是指在发送请求时,服务器会返回一个新的URL,将请求重新定向到该URL。为了帮助您解决这个问题,本文将提供一些实用的解决办法,并给出相关的代码示例,希望能对您的爬虫任务有所帮助。了解重定向问题重定向问题通常是由于网......
  • python教程 入门学习笔记 第6天 数据类型转换 字符串转换成数值 数值之间互转 其它类
    4、数据类型转换1)字符串转换成数值:int()-----------将值转换成整数float()-----------将值转换成小数str()-----------将值转换成字符串bool()-----------将值转换成布尔值例如:int()将值转换成整数s1="188"#字符串ns1=int(s1)#转换成整型数值print(ns1+8)#打印数......
  • 配置pytorch环境时出现的问题 Failed to load image Python extension
    安装了torch1.12.0+torchvision0.13.0+torchaudio0.12.0版本后,condainstallpytorch==1.12.0torchvision==0.13.0torchaudio==0.12.0cudatoolkit=11.3-cpytorch按照《动手学深度学习》输入 fromd2limporttorchasd2l命令,跳出警告UserWarning:Failed......
  • 100道Python练习题
    100道Python练习题,希望对你的学习有所帮助!编写一个程序,输入两个数并计算它们的和。编写一个程序,输入一个字符串,并倒序输出该字符串。编写一个程序,判断一个数是否为质数。编写一个程序,计算并输出斐波那契数列的前n项(n由用户输入)。编写一个程序,判断一个字符串是否为回文串。编写一个......
  • python实现单例的几种方式
    单例模式单例模式(SingletonPattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个AppConfig的类来读取配置文......
  • ubuntu 默认python版本切换
    Ubuntu下完美切换Python版,即设置系统默认的python版本(亲测有效)_ubuntu切换python版本_关彼得的博客-CSDN博客 sudosuupdate-alternatives--listpythonupdate-alternatives:error:noalternativesforpythonupdate-alternatives--install/usr/bin/pythonpytho......
  • 盘点一个初学者Python库安装的问题(Mac系统)(下篇
    大家好,我是皮皮。一、前言前几天在Python私教群【Emma】问了一个Python库安装的基础问题,一起来看看吧。上一篇文章讲到【Emma】的远程环境不给力,需要继续本地指导。二、实现过程针对导包失败的问题,这里【狂吃山楂片】给了一个解决方法,如下图所示:右下角可以设置环境,你点一下,......