在运行时创建动态命名的函数

PyW*_*ign 1 python python-2.7

我正在创建一个名为的简单包pyma,可在pypi上找到.

我提供了一种计算N日指数移动平均值的方法,该函数称为NDayEMA(n, data).(事实上​​,它是一个名为的类NDayEMA,带有一个被调用的函数,compute()但它在这里是无关紧要的.)

我试图在运行时创建一个动态命名的函数作为用户的快捷方式.

例如:

NDayEMA(30, data) 
Run Code Online (Sandbox Code Playgroud)

EMA30(data)
Run Code Online (Sandbox Code Playgroud)

会是一样的

EMA23(data)
EMA1023(data)
EMA12(data)
Run Code Online (Sandbox Code Playgroud)

也可以.

我知道我需要一些注册和处理,这在你的答案中是不需要的; 我自己会得到它!我正在搜索如何接收用户提供的函数的名称,并创建具有该名称的函数,而不会引发错误消息.

这是来自Laravel PHP框架的PHP等价物.

$user = DB::table('users')->where_email_and_password('example@gmail.com', 'secret');
Run Code Online (Sandbox Code Playgroud)

Ari*_*Ari 6

这并没有完全回答你的问题,但我建议不要做你所要求的.您已经有一个将数字和数据作为参数的方法,因此将数字转换为不同的方法名称似乎不比您当前的方法更方便.