我想从一个调用函数中从Python检索局部变量。有什么办法吗?我意识到这不适用于大多数编程,但是我基本上是在构建调试器。例如:
def show_locals():
# put something in here that shows local_1.
local_1 = 123
show_locals() # I want this to show local_1.
我要放什么show_locals
呢?如果必须修改调用语句,可以做的最小修改是什么?
注意:show_locals
在与调用者不同的模块中,这必须起作用。
如果要编写调试器,则需要大量使用该inspect
模块:
def show_callers_locals():
"""Print the local variables in the caller's frame."""
import inspect
frame = inspect.currentframe()
try:
print(frame.f_back.f_locals)
finally:
del frame
是否有一种使用JAXB从非根元素以编程方式获取名称空间的方法? 我可以在根元素上使用以下内容(其中DetailedReport是根元素对象): 但是,如果我尝试使用来自同一个包的类型,但不是根元素,qname为null。 根据JAXBIntrospector的javadocs: 参数对象是以下情况的JAXB元素: 它是javax.xml.bind.JAXBElement的实例,object的类用@
我有一个关于ES6导入模块的问题。 我试图在我的Three.js代码中添加OrbitControl。由于OrbitControls是一个单独的模块,我需要在我的代码中分别导入它们,如下所示。它工作得很好。 然而 我首先想到的是 原因是, 据我所知,如果模块将某些内容导出为导出默认值, 我可以通过在“导入”代码中添加花括号来访问它们。 但是,它没有起作用,因此我假设“三个orbitcontrols”
问题内容: 我正在尝试获取当前正在运行的Python脚本的名称。 我有一个名为的脚本,我想做这样的事情以获得脚本名称: 问题答案: 您可以使用获取当前文件的名称。在主模块中使用时,这是最初调用的脚本的名称。 如果要省略目录部分(可能存在),可以使用。
问题内容: 假设有一个文件夹“ / home / user / temp/a40bd22344”。名称是完全随机的,并且在每次迭代中都会更改。我需要能够使用固定名称(例如“ project”)在Python中导入此文件夹。我知道我可以将此文件夹添加到sys.path中以启用导入查找,但是有没有一种方法可以将“a40bd22344”替换为“项目”? 也许 init .py有一些聪明的技巧? 添加:
问题内容: 我正在尝试获取证书颁发者信息(通用名称),但是链接中的代码不适用于某些URL。 例如,我尝试使用主机名“ cds.ca”,它说 但我仍然可以使用Internet Explorer(* .cds.ca)来获得通用名称 所以我认为我应该使用自己的证书(.cer)而不是使用getpeercert(),那么我应该如何更改该行? 或者,还有其他方法可以使用我自己的证书文件来实现CN吗? 问题答案
在OpenFOAM中,存在一个函数,其名称为exp,表示数学中的幂操作。同时,C++本身也可以进行这个计算,并且函数名称也为exp。这会导致调用的时候,编译器并不知道应该调用OpenFOAM的exp还是C++本身的exp。一种方法是将其中一个exp函数进行改名,比如将OpenFOAM中的exp改成expFoam。但还有更简单的方式。 名称空间专门用于解决上面的问题,它可作为附加信息来区分不同库中相