Tag: 内省

在Lua中打印当前作用域可访问的所有局部variables

我知道如何使用下面的代码打印“全部”全局variables for k,v in pairs(_G) do print("Global key", k, "value", v) end 所以我的问题是如何为当前正在执行的函数可访问的所有variables执行此操作,这些操作可以执行locals()对Python的操作。

你能列出一个Python函数接收的关键字参数吗?

我有一个字典,我需要传递键/值作为关键字参数..例如.. d_args = {'kw1': 'value1', 'kw2': 'value2'} example(**d_args) 这个工作正常, 但是如果d_args字典中的值不被example函数所接受,那么显然会死亡。假设示例函数被定义为def example(kw2): 这是一个问题,因为我不控制d_args的生成或example函数。它们都来自外部模块,并且example只接受字典中的一些关键字参数。 理想情况下,我会做 parsed_kwargs = feedparser.parse(the_url) valid_kwargs = get_valid_kwargs(parsed_kwargs, valid_for = PyRSS2Gen.RSS2) PyRSS2Gen.RSS2(**valid_kwargs) 我可能只是从有效的关键字参数列表中筛选字典,但我想知道: 是否有一种方法编程方式列出特定function所需的关键字参数?

Python代码获取当前函数到一个variables?

我怎样才能得到一个variables,包含当前正在执行的Python函数? 我不想要这个函数的名字 我知道我可以使用inspect.stack获取当前的函数名称。 我想要实际的可调用对象。 这可以做到不使用inspect.stack检索函数的名称,然后eval名称来获取可调用对象? 编辑:我有一个这样做的理由,但它甚至不是一个很好的。 我使用plac来parsing命令行参数。 通过执行plac.call(main)使用它,它从“main”的函数签名中生成一个ArgumentParser对象。 在“main”里面,如果参数有问题,我想退出一个包含来自ArgumentParser对象的帮助文本的错误消息,这意味着我需要通过调用plac.parser_from(main).print_help()来直接访问这个对象。 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]) 但是这个实现依赖于具有名字的函数,我想这不是太繁重。 我永远不会做plac.call(lambda …) 。 从长远来看,让plac的作者实现一个print_help方法来打印最近使用plac调用的函数的帮助文本或类似的东西可能会更有用。

从该函数中确定函数名称(不使用回溯)

在Python中,如果不使用traceback模块,是否有一种方法可以在该函数中确定函数的名称? 说我有一个function栏foo模块。 执行foo.bar() ,有没有方法让bar知道bar的名字? 或者更好, foo.bar的名字? #foo.py def bar(): print "my name is", __myname__ # <== how do I calculate this at runtime?

查找Python对象具有的方法

给定一个任何types的Python对象,是否有一个简单的方法来获取该对象所有方法的列表? 要么, 如果这是不可能的,是否至less有一个简单的方法来检查是否有一个特定的方法,而不是简单地检查方法被调用时是否发生错误?

Python:如何获取调用方法中的调用方法名称?

Python:如何获取调用方法中的调用方法名称? 假设我有两个方法: def method1(self): … a = A.method2() def method2(self): … 如果我不想为method1做任何改变,如何在method2中获得调用者的名字(在这个例子中,名字是method1)?

Python:斜杠在帮助(范围)的输出中意味着什么?

Python 3.4中的/ mean是什么help在右括号之前输出range ? >>> help(range) Help on class range in module builtins: class range(object) | range(stop) -> range object | range(start, stop[, step]) -> range object | | Return a virtual sequence of numbers from start to stop by step. | | Methods defined here: | | __contains__(self, key, /) | Return key in […]