小编Ran*_*lva的帖子

如何在调用python doctest时启用省略号

在Python(3.3.2)doctest中,省略号(...)可以匹配任何字符串.所以,对于下面的代码

def foo():
    """
    >>> foo()
    hello ...
    """
    print("hello world")
Run Code Online (Sandbox Code Playgroud)

运行doctest时,不应该引发任何错误.但

$ python -m doctest foo.py 
**********************************************************************
File "./foo.py", line 3, in foo.foo
Failed example:
    foo()
Expected:
    hello ...
Got:
    hello world
**********************************************************************
1 items had failures:
   1 of   1 in foo.foo
***Test Failed*** 1 failures.
Run Code Online (Sandbox Code Playgroud)

我必须做什么来启用椭圆?据我所知,默认情况下是禁用.

我知道添加# doctest: +ELLIPSIS,如下面的代码,解决它,但我喜欢为所有测试启用省略号.

def foo():
    """
    >>> foo() # doctest: +ELLIPSIS
    hello ...
    """
    print("hello world")
Run Code Online (Sandbox Code Playgroud)

python doctest ellipsis python-3.x

11
推荐指数
3
解决办法
3775
查看次数

const已在ES6开关块中声明

考虑一下该文件 sample.es6

switch (1) {
    case 1:
        const foo = 1;
        break;
    case 2:
        const foo = 2;
        break;
}
Run Code Online (Sandbox Code Playgroud)

如果我用Node运行它我得到了

$ node --version
v4.2.11
$ node sample.es6 
/tmp/sample.es6:6
const foo = 2;
^

SyntaxError: Identifier 'foo' has already been declared
    at Object.<anonymous> (/tmp/sample.es6:1:11)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:134:18)
    at node.js:961:3
Run Code Online (Sandbox Code Playgroud)

为什么我收到此错误?节点不应该评估const foo = 2;.

javascript const node.js ecmascript-6

11
推荐指数
4
解决办法
8856
查看次数

如何从 R reticulate 调用 Python 方法

reticulate允许您从 R 与 Python 交互。在 Python 中,通常使用(类)方法与变量交互。使用 reticulate 时如何访问/执行 R 中一个 Python 变量的方法?例如,如果我创建以下 Python 字典:

```{python}
fruits = {
    "apple": 53,
    "banana": None,
    "melon": 7,
}
```
Run Code Online (Sandbox Code Playgroud)

可以使用网状访问,

```{r}
py$fruits
```

## $apple
## [1] 53
## 
## $banana
## NULL
## 
## $melon
## [1] 7
Run Code Online (Sandbox Code Playgroud)

如何调用字典类(例如keys()R)中的方法之一?

```{python}
print(fruits.keys())
```

## dict_keys(['apple', 'banana', 'melon'])
Run Code Online (Sandbox Code Playgroud)

我试过:

```{r error=TRUE}
py$fruits$keys()
```

## Error in eval(expr, envir, enclos): attempt to apply non-function

```{r error=TRUE}
py$fruits.keys()
```

## Error in …
Run Code Online (Sandbox Code Playgroud)

python r reticulate

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

仅当前树中所有分支的 Git 日志

我想获得的所有分支的日志中只有当前树。

很长的故事

鉴于下面的 git 历史:

$ git log --all --decorate --oneline --graph
* 3d0cb35 (HEAD, master) 4th commit
| * a43b07c (branch) 4th commit in branch
|/  
* 722745a 3rd commit
* 46d0d84 2nd commit
* 3060fe0 1st commit
Run Code Online (Sandbox Code Playgroud)

假设我创建了一个孤儿分支。

$ git checkout --orphan orphan
Switched to a new branch 'orphan'
Run Code Online (Sandbox Code Playgroud)

在孤儿分支中添加一个提交并尝试使用第一个命令来获取“第二个”树的 git 历史记录。

$ git log --all --decorate --oneline --graph
* 202f3c4 (HEAD, orphan) Orphan branch
* 3d0cb35 (master) 4th commit
| * a43b07c (branch) 4th commit …
Run Code Online (Sandbox Code Playgroud)

git git-log git-branch

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

为什么Python的str.format比string concat慢

不是完美的基准但是

$python --version
Python 3.4.2
$ python -m timeit 'print("foo" + str(3.14) + "bar")'
100000 loops, best of 3: 16.4 usec per loop
$ python -m timeit 'print("foo{}bar".format(3.14))'
100000 loops, best of 3: 19.2 usec per loop
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
102
查看次数