相关疑难解决方法(0)

如何将当前函数转换为变量?

如何在Python中获取包含当前正在执行的函数的变量?我不想要这个功能的名字.我知道我可以使用inspect.stack获取当前的函数名称.我想要实际的可调用对象.这可以在不使用inspect.stack检索函数的名称然后eval输入名称来获取可调用对象的情况下完成吗?

编辑:我有理由这样做,但它甚至不是一个好的.我正在使用plac来解析命令行参数.你可以通过do来使用它plac.call(main),它从"main"的函数签名生成一个ArgumentParser对象.在"main"中,如果参数有问题,我想退出一个包含ArgumentParser对象的帮助文本的错误消息,这意味着我需要通过调用直接访问该对象plac.parser_from(main).print_help().能够说出来是很好的:plac.parser_from(get_current_function()).print_help()所以我不依赖于被命名为"main"的函数.现在,我的"get_current_function"实现将是:

import inspect    
def get_current_function():
    return eval(inspect.stack()[1][3])
Run Code Online (Sandbox Code Playgroud)

但是这个实现依赖于具有名称的函数,我认为这不是太繁重.我永远不会这样做plac.call(lambda ...).

从长远来看,要求plac的作者实现print_help方法来打印最近使用plac或类似东西调用的函数的帮助文本可能更有用.

python function introspection

32
推荐指数
7
解决办法
2万
查看次数

Python的任何AOP支持库?

我试图在我的Python编程中使用一些AOP,但我没有任何存在的各种库的经验.

所以我的问题是:

Python存在哪些AOP支持?它们之间的不同库有什么优势?


编辑

我找到了一些,但我不知道他们如何比较:

编辑2

在哪种情况下我会使用这些?

我有两个用Python编写的应用程序,它们通常有计算税收和其他金钱的方法.我希望能够编写一个功能的"骨架",并在运行时自定义它,例如更改地方税的应用方式(按国家,州或城市等),而不必重载全栈.

python aop

28
推荐指数
3
解决办法
1万
查看次数

如何在matplotlib中将变量名称打印为标题

我的目标是创建一个简单的函数,为带有已绘制变量名称的图形添加标题。

到目前为止,我有:

def comparigraphside(rawvariable, filtervariable, cut):
    variable = rawvariable[filtervariable > 0]
    upperbound = np.mean(variable) + 3*np.std(variable)
    plt.figure(figsize=(20,5))
    plt.subplot(121)
    plt.hist(variable[filtervariable <= cut], bins=20, range=(0,upperbound), normed=True)
    plt.title("%s customers with filter less than or equal to %s" % (len(variable[filtervariable <= cut]), cut))
    plt.subplot(122)
    plt.hist(variable[filtervariable > cut], bins=20, range=(0,upperbound), normed=True)
    plt.title("%s customers with filter greater than %s" % (len(variable[filtervariable > cut]), cut));
Run Code Online (Sandbox Code Playgroud)

在哪里:

plt.title("%s customers with filter less/greater...") 
Run Code Online (Sandbox Code Playgroud)

我很乐意说:

plt.title("%s customers with %s less/greater...")
Run Code Online (Sandbox Code Playgroud)

目前,我能想到的唯一解决方案是为我的变量制作一个字典,这是我想避免的。任何帮助都将不胜感激。

python matplotlib

5
推荐指数
1
解决办法
7011
查看次数

标签 统计

python ×3

aop ×1

function ×1

introspection ×1

matplotlib ×1