我想使用字串作為已經存在的串列函式。例如我從用戶那里得到的作為輸入:'append'
如何直接將此字串用作函式?
例如:
function_name = str(input(n)) # let say it is append
arr = []
arr.function_name(9) #Of course it is not working because it is string. Not a function.
uj5u.com熱心網友回復:
使用getattr.
>>> a = []
>>> getattr(a, 'append')(1)
>>> a
[1]
話雖如此,根據用戶輸入執行任意代碼并不是最好的主意。您應該首先根據一組允許的方法檢查輸入。
uj5u.com熱心網友回復:
所有函式都是各自物件的屬性。您可以使用該getattr函式來獲取可呼叫的函式,然后呼叫它。
例如。,
function_name = str(input("")) # let say it is append
arr = []
#Get the attribute and call it
# You can check if callable(function_to_call) to make sure its a function as well.
function_to_call = getattr(arr, function_name)
function_to_call(10)
print(arr)
uj5u.com熱心網友回復:
您使用的方法不可行。
但是你可以改用這個方法......
function_name = str(input(n))
arr = []
if function_name == "append":
arr.append(9)
或者你可以使用getattr:
function_name = str(input(n))
arr = []
getattr(arr, fucntion_name)(9)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/381631.html
上一篇:檢查字串(句子空間分隔)以查看它是否包含陣列中的任何字符
下一篇:如何組合字串并制作它的陣列?
