专栏首页python3动态执行python代码

动态执行python代码

最近刚刚学到两个新的命令exec和eval,这两个命令可以在代码中动态执行python脚本。

exec


a = 1
exec "a = 2"
print a

上述代码输出的结果为2

name = "os"
exec "import %s"%name

执行import os

eval


下面写一个代码如果你输入的是”one”那么输出数字1 如果你输入的是”two”那么输出数字2

class a():
    def one(self):
        print 1
    def two(self):
        print 2
    def what(self,num):
        eval('self.'+num+"()")

num = input()
A = a()
A.what(num)

这样就可以省略掉复杂的逻辑语句,如果使用普通代码应该这样写

class a():
    def one(self):
        print 1
    def two(self):
        print 2
num = input()
A = a()
if num == "one":
    A.one()
if num = "TWO":
    a.two()

是不是感觉使用eval会更容易


至于eval与exec的区别,我感觉应该是eval执行一个字符串表达式 exec是执行一个普通的表达式。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python:线程、进程与协程(3)——

        Queue模块是提供队列操作的模块,队列是线程间最常用的交换数据的形式。该模块提供了三种队列:

    py3study
  • Python权威指南的10个项目(1~5

    引言:   我相信学习Python过的朋友,一定会喜欢上这门语言,简单,库多,易上手,学习成本低,但是如果是学习之后,不经常使用,或者工作中暂时用不到,那么不久...

    py3study
  • 用python实现选择截图区域

    一直想用python实现一个类似QQ截图的功能,但不直接截图,而是返回截图的区域,以下是代码

    py3study
  • Python 单元测试 增强系统健壮性

    1.JulyNovel需要在request_url插入spider.wait队列之前去判断有没有必要去爬这条url

    从今若
  • 【Vue原理】Compile - 源码版 之 generate 节点数据拼接

    【Vue原理】Compile - 源码版 之 generate 节点数据拼接

    神仙朱
  • poj-------Common Subsequence(poj 1458)

    Common Subsequence Time Limit: 1000MS Memory Limit: 10000K Total Submiss...

    Gxjun
  • 记一次开源工具某模块的基础二次开发

    近日看到一些关于工具的文章,很多人对于写工具类文章都是蜻蜓点水,写搭建,写基础使用,但是基础的开源工具在生产环境上的使用其实是比较困难的,有很多需要二次开发做到...

    FB客服
  • 如何有效利用企业资源,发挥Scrum最大优势?

    Scrum是一种能使业务变得敏捷的框架,而企业恰恰需要变得敏捷。只是,企业本身有时候并没有足够的能力来帮助Scrum团队的成长,甚至还会阻碍Scrum团队的成长...

    CORNERSTONE
  • __getattr__

    正常情况下,当调用类的方法或属性时,如果不存在,就会报错 要避免这个错误,除了可以加上那个要调用但不存在的属性外,Python还有另一个机制,那就是写一个_...

    py3study
  • 【leetcode刷题】T196-有效的完全平方数

    https://leetcode-cn.com/problems/valid-perfect-square/

    木又AI帮

扫码关注云+社区

领取腾讯云代金券