簡體   English   中英

如何在python中將字符串轉換為函數?

[英]How do you convert a string to a function in python?

如何將字符串(例如,來自文本框的輸入)轉換為適當的函數?

您可以使用eval 但是要非常小心! 這打開了許多安全漏洞。

>>> s = '3+4'
>>> eval(s)
7

如果您希望它可調用:

>>> s = '3+4'
>>> f = eval('lambda: ' + s)
>>> f()
7

有關eval更多信息,請eval 此處

嘗試這個

func = ___import___('func_name')

要么

if hasattr(your_module, func_name): func = getattr(your_module, func_name)

要么

if func_name in globals(): func = globals[func_name]

等等

def func():
    print "hello"

# just eval it
eval(raw_input())

# if you just want to ask for name
fName=raw_input()
if fName in globals():
    globals()[fName]()

根據目標是什么,可以有其他各種方式?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM