有什么方法可以在 Python 中用函数属性中的值替换变量?



我想知道是否有任何方法可以在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!")

最新更新