有没有什么方法可以在函数';Python中的s属性?

有没有什么方法可以在函数';Python中的s属性?,python,tkinter,Python,Tkinter,我想知道是否有任何方法可以替换Python中functions属性中的变量。例如,考虑这个代码: from tkinter import * from tkinter import messagebox def message(type, title, text): msg = messagebox.type(title, text) message("showerror", "Error!", "Error in processin

我想知道是否有任何方法可以替换Python中functions属性中的变量。例如,考虑这个代码:

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
函数获取模块/类的属性。例如,看看这个:

>>将tkinter作为tk导入
>>>getattr(tk,“按钮”)
这是:

>>将tkinter作为tk导入
>>>var=“标签”
>>>getattr(tk,var)
因此,您可以将代码更改为:

从tkinter导入*
从tkinter导入消息框
def消息(类型、标题、文本):
msg=getattr(消息框,类型)(标题,文本)
返回消息
消息(“错误”,“错误!”,“处理错误!”)

您可以使用内置的
getattr
函数获取模块/类的属性。例如,看看这个:

>>将tkinter作为tk导入
>>>getattr(tk,“按钮”)
这是:

>>将tkinter作为tk导入
>>>var=“标签”
>>>getattr(tk,var)
因此,您可以将代码更改为:

从tkinter导入*
从tkinter导入消息框
def消息(类型、标题、文本):
msg=getattr(消息框,类型)(标题,文本)
返回消息
消息(“错误”,“错误!”,“处理错误!”)

Try
getattr(messagebox,type)(标题,文本)
Try
getattr(messagebox,type)(标题,文本)
是的,它工作了!非常感谢。顺便说一句,我没有在我的答案中添加这个,但是还有一个
setattr
内置函数是的,我在搜索“getattr()”的详细信息时找到了它。不管怎样,谢谢你的通知:)是的,成功了!非常感谢。顺便说一句,我没有在我的答案中添加这个,但是还有一个
setattr
内置函数是的,我在搜索“getattr()”的详细信息时找到了它。无论如何,感谢您通知:)