我想知道是否有任何方法可以在Python中替换函数属性中的变量。例如,考虑以下代码:
from tkinter import *
from tkinter import messagebox
def message(type, title, text):
msg = messagebox.type(title, text)
message("showerror", "Error!", "Error in processing!")
在上面代码的第五行,我可以替换变量"type"它的价值?如果是,怎么做?
(我知道我们不能替换属性中的字符串,即使它是可能的,但因为我不知道用什么来替换它,我只是把它作为一个值。)请原谅。)
您可以通过使用内置的getattr
函数获得模块/类的属性。例如:
>>> import tkinter as tk
>>> getattr(tk, "Button")
<class 'tkinter.Button'>
:
>>> import tkinter as tk
>>> var = "Label"
>>> getattr(tk, var)
<class 'tkinter.Label'>
所以你可以把你的代码改成:
from tkinter import *
from tkinter import messagebox
def message(type, title, text):
msg = getattr(messagebox, type)(title, text)
return msg
message("showerror", "Error!", "Error in processing!")