【问题标题】:Python : Create functions by gitting names from dictionaryPython:通过从字典中输入名称来创建函数
【发布时间】:2018-03-05 08:35:58
【问题描述】:

我试图通过从给定字典中获取函数名称来创建函数, 实际上,我不确定这是否可能,她就是我想要做的:

def functions_factory(my_dict):
        for the name in my_dict:
            create_function(name)

def   create_function(function_name):
        x=0
        # **code implentation:** here should write a code that can create function with name = <function_name>

【问题讨论】:

  • 像这样创建变量(在这种情况下为函数)绝不是一个好主意,并且表明您应该对问题采取不同的方法。这对我来说就像一个XY Problem
  • 很可能是stackoverflow.com/q/3687682/831878 的副本——但是是的,这不太可能真的是正确的处理方式。绝对看起来像一个 XY。
  • 如何以动态方式生成函数的body?与它的代码总是相同的事实相比,为函数使用动态名称似乎是一个较小的问题。因此,这似乎毫无意义。
  • 对于能够跳出框框思考的人来说,这是一个非常好的主意。如果您知道答案,请添加它,如果您不知道,请不要哲学地离开。

标签: python


【解决方案1】:

试试这个

one = 'one'
two = 'two'
three = 'three'
l = {one:1, two:2, three:3}
def some_stuff():
    print("some stuff")
for keys,item in l.items():
    def _f():
        some_stuff()
    globals()[keys] = _f
    del _f

one()
two()
three()

输出:

一些东西

一些东西

一些东西

【讨论】:

  • @deceze 用户想要从字典键创建函数
  • @deceze 这不是你的工作。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
相关资源
最近更新 更多