Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在运行时输入python代码并执行它?_Python - Fatal编程技术网

如何在运行时输入python代码并执行它?

如何在运行时输入python代码并执行它?,python,Python,我想在运行时输入一个python函数作为输入,并多次执行代码的这部分。例如,我使用tkinter创建了一个文本框,用户在其中编写函数并提交它,同时还提到了它要执行多少次。我的程序应该能够像用户所说的那样多次运行该函数 Ps:我确实想到了另一种方法,用户可以在一个文件中编写程序,然后我可以简单地在我的python程序中以python文件名作为系统cmd来执行它,但我不希望这样做。IPython会这样做吗 医生:我会做什么 Doc:Python提供了许多使用函数调用实现这一点的方法: -eval()

我想在运行时输入一个python函数作为输入,并多次执行代码的这部分。例如,我使用tkinter创建了一个文本框,用户在其中编写函数并提交它,同时还提到了它要执行多少次。我的程序应该能够像用户所说的那样多次运行该函数

Ps:我确实想到了另一种方法,用户可以在一个文件中编写程序,然后我可以简单地在我的python程序中以python文件名作为系统cmd来执行它,但我不希望这样做。

IPython会这样做吗

医生:

我会做什么


Doc:

Python提供了许多使用函数调用实现这一点的方法: -eval() -行政长官()


根据您的需要,您应该阅读有关exec的内容。

Python提供了许多使用函数调用来实现这一点的方法: -eval() -行政长官()

出于您的需要,您应该阅读有关exec的内容。

这就是
execfile()
的用途

  • 创建一个临时文件

  • 将文本框的内容写入文件

  • 接近

  • 执行文件

  • 完成后删除

  • 这就是
    execfile()
    的用途

  • 创建一个临时文件

  • 将文本框的内容写入文件

  • 接近

  • 执行文件

  • 完成后删除


  • 性能也是一个限制因素,创建和删除临时文件会增加执行时间吗?是的。显微镜下。试着衡量一下。性能也是一个限制因素,创建和删除临时文件会增加执行时间吗?是的。显微镜下。试着去衡量它。只是要非常小心安全性——你基本上允许任何有权访问该输入的用户以执行python程序的用户的身份执行任意代码。如果只是一个单用户环境,应该可以,但是如果程序的任何部分需要管理/根权限,或者如果输入到其他地方的服务器执行,那么您只是在自找麻烦。基本上,输入功能将在集群网络上运行。但现在我只限于单个系统,因为我正在构建一个小型原型。但是你在考虑什么样的安全问题呢?赋予某人在
    exec
    中运行的能力可以让他们完全控制机器。如果有人运行此代码,您会有什么感觉:
    import os,os.path for root,dirs,os.walk('.'):对于文件中的f:fullpath=os.path.join(root,f)os.remove(fullpath)
    这对我的项目来说很好。。所以它更像是一个受控的演示。我正在尝试创建一个map reduce框架,只是要非常小心安全性——基本上,您允许任何有权访问该输入的用户以执行python程序的用户的身份执行任意代码。如果只是一个单用户环境,应该可以,但是如果程序的任何部分需要管理/根权限,或者如果输入到其他地方的服务器执行,那么您只是在自找麻烦。基本上,输入功能将在集群网络上运行。但现在我只限于单个系统,因为我正在构建一个小型原型。但是你在考虑什么样的安全问题呢?赋予某人在
    exec
    中运行的能力可以让他们完全控制机器。如果有人运行此代码,您会有什么感觉:
    import os,os.path for root,dirs,os.walk('.'):对于文件中的f:fullpath=os.path.join(root,f)os.remove(fullpath)
    这对我的项目来说很好。。所以它更像是一个受控的演示。我正在尝试创建map reduce框架此解决方案可能适合您。只需在某些目录中使用exex input()创建用户定义函数的字典。此解决方案可能适合您。只需在某些目录中使用exex input()创建用户定义函数的字典。