小编ate*_*evm的帖子

Python:如何在函数的本地范围内运行eval()

我尝试在函数的局部范围内使用eval()。但是,它始终在全局范围内进行评估。

自包含的示例:

1-此代码有效:

var1 = 1
var2 = 2
var3 = 3    
myDict = dict((name, eval(name)) for name in ["var1",
                                              "var2",
                                              "var3"])
print(myDict["var1"])
Run Code Online (Sandbox Code Playgroud)

2-抛出NameErrorlvar1

def test1():
   lvar1 = 1
   lvar2 = 2
   lvar3 = 3
   myDict = dict((name, eval(name)) for name in ["lvar1",
                                                 "lvar2",
                                                 "lvar3"])
   print(myDict["lvar1"])
Run Code Online (Sandbox Code Playgroud)

3-与2相同的结果。

def test2():
    lvar1 = 1
    lvar2 = 2
    lvar3 = 3
    myDict = dict((name, eval(name), locals()) for name in ["lvar1",
                                                            "lvar2",
                                                            "lvar3"])
    print(myDict["lvar1"])
Run Code Online (Sandbox Code Playgroud)

python scope eval

6
推荐指数
2
解决办法
4210
查看次数

git 交互式地逐行合并两个分支

我想合并两个分支,但是git认为没有冲突。所以我想以交互方式逐行合并两个分支,最好使用 emacs ediff,但是其他工具应该没问题。

我对 git 很陌生,所以请详细一点。

git version-control diff branch git-branch

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

ClojureScript与JavaScript对象完全相同

我遇到了如何在ClojureScript中比较两个JavaScript对象以实现深度相等的问题,因为(= var1 var2 var3 ...)仅适用于Clojure/ClojureScript集合和数字.

(= (js-obj "a" 1) (js-obj "a" 1)) ;; => false
Run Code Online (Sandbox Code Playgroud)

当我写这个问题时,我找到了解决方案......但我会问并回答它可能会帮助别人.

javascript interop clojurescript deepequals

4
推荐指数
1
解决办法
243
查看次数