当前位置: 首页 > 面试题库 >

如何使用python从字符串定义函数

农永宁
2023-03-14
问题内容

这是我的代码:

a = \
'''def fun():\n
    print 'bbb'
'''
eval(a)

fun()

但显示错误:

Traceback (most recent call last):
  File "c.py", line 8, in <module>
    eval(a)
  File "<string>", line 1
    def fun():
      ^
SyntaxError: invalid syntax

那我该怎么办,

谢谢


问题答案:

eval()带有字符串参数的参数仅用于表达式。如果要执行语句,请使用exec

exec """def fun():
  print 'bbb'
"""

但是在执行此操作之前,请考虑是否真的需要动态代码。到目前为止,大多数事情都可以做到。



 类似资料:
  • 问题内容: 例如,有一个字符串。。 如何从中删除中间字符M?我不需要代码。我想知道: Python中的字符串是否以任何特殊字符结尾? 哪种更好的方法-从中间字符或创建新字符串开始,将所有内容从右移到左,而不是复制中间字符? 问题答案: 在Python中,字符串是不可变的,因此你必须创建一个新字符串。你有一些关于如何创建新字符串的选项。如果要删除出现的,请执行以下操作: 如果要删除中心字符: 你询问

  • 问题内容: 我知道如何用以下方法覆盖字符串类: 但是,如何在str不隐式定义类的情况下使用此类而不是内置UserString类?明确地说,我想要这样: 问题答案: 这不可能。您尚未覆盖字符串类。 您不能覆盖类。您可以覆盖方法。您所做的是定义一个类,并且仅覆盖其str()方法。 但是你可以做这样的事情… 输出: 覆盖过去!

  • 问题内容: 我是Python和RegEx的初学者,我想知道如何制作一个带符号的字符串并将其替换为空格。任何帮助都很棒。 例如: 变成: 问题答案: 一种使用正则表达式的方式: 将匹配字母数字字符和下划线 将匹配任何 非 字母数字或下划线的内容

  • 问题内容: 我想使用pythons argparse模块来解析我的cli参数字符串。这适用于从终端传递的参数,但不适用于给定的字符串。 如果运行此脚本,则会得到以下输出: 在以某种方式在转变。如前所述,如果我从终端传递文件名,它就可以工作。 我可以想象,这与字符串编码有关。有人知道如何解决此问题吗? 问题答案: 要求序列与相同的形式。如果将字符串像sys.argv序列一样对待,则会得到。’s’成为

  • 问题内容: 我有一个str对象,例如:。我想从此字符串运行安装方法。例如,当我打电话时它将呼叫。有什么办法吗? 问题答案: 如果在课程中,则可以使用getattr: 或者它是一个函数:

  • 问题内容: 我必须使用字典中的值格式化字符串,但是该字符串已经包含大括号。例如: 但是,当然会导致KeyErro。 有没有办法使用不同的符号来使用? 这不是我如何在python字符串中打印文字大括号字符并在其上使用.format的重复项?因为我需要保持大括号不变,并为使用不同的定界符。 问题答案: 语境 python 2.7 允许自定义占位符语法的替代方法 问题 我们要在Python str.fo