Python 有没有办法直接在字典中定义函数?

Python 有没有办法直接在字典中定义函数?,python,dictionary,object,Python,Dictionary,Object,我有一个用python编写的游戏,我希望有一个,所有的控制字典,有所有的值和函数来运行游戏。唯一的问题是,我不想定义函数,然后将它们放入函数中。我在想这样的事情: Dictionary = { function1 : def(): stuff, function2 : def(): stuff } var Object = { function1 : function() {}, function2 : function() {}

我有一个用python编写的游戏,我希望有一个,所有的控制字典,有所有的值和函数来运行游戏。唯一的问题是,我不想定义函数,然后将它们放入函数中。我在想这样的事情:

Dictionary = {
    function1 : def():
        stuff,
    function2 : def():
        stuff
}
var Object = {
    function1 : function() {},
    function2 : function() {}
}
有一种方法可以在Javascript对象中这样做:

Dictionary = {
    function1 : def():
        stuff,
    function2 : def():
        stuff
}
var Object = {
    function1 : function() {},
    function2 : function() {}
}

在Python中有什么方法可以做到这一点吗?

是的,您可以将函数对象(即lambda)作为值分配给字典。这不是一个很有用的例子,而是一个例子。将
function1
分配给
dict
d
的键
的“function1”
,并将lambda分配给键
的“function2”
,然后这两者都被称为:

def function1():
    print("function1")

d = {
    "function1": function1,
    "function2": lambda: print("function2")
}

d["function1"]()
d["function2"]()

是的,您可以将函数对象(即lambda)指定为字典的值。这不是一个很有用的例子,而是一个例子。将
function1
分配给
dict
d
的键
的“function1”
,并将lambda分配给键
的“function2”
,然后这两者都被称为:

def function1():
    print("function1")

d = {
    "function1": function1,
    "function2": lambda: print("function2")
}

d["function1"]()
d["function2"]()

也许只是使用类而不是字典?“我不想定义函数,然后将它们放入字典”-为什么不?我想使用类,但类不能保存在Pickle
Pickle
can保存类的实例。不管怎样,有一个叫做dill的第三方模块,可以pickle类。“我希望有一个,所有的控制字典,所有的值和函数来运行游戏。”这没有任何意义。你不应该用字典来做那件事。无论如何,您可以使用lambda表达式,但这对您尝试执行的操作来说是非常有限的。也许只使用类而不是字典?“我不想定义函数,然后将它们放入字典”-为什么不?我想使用类,但类不能保存在Pickle
Pickle
中,因为Pickle可以保存类的实例。不管怎样,有一个叫做dill的第三方模块,可以pickle类。“我希望有一个,所有的控制字典,所有的值和函数来运行游戏。”这没有任何意义。你不应该用字典来做那件事。无论如何,您可以使用lambda表达式,但这对于您尝试执行的操作来说是非常有限的。谢谢,尽管我不认为python字典是像javascript对象一样构建的,所以没有正确的答案。谢谢,尽管我不认为python字典是像javascript对象一样构建的,所以没有正确的答案。