小编use*_*833的帖子

Setup.py 以不同的名称导出

我有一种情况需要将所有脚本放在基本目录的子文件夹中

当前结构

如果我有以下文档结构

superhero

    setup.py
    scripts.py

    heros
        superman.py
        batman.py

    modules
        __init__.py

        fly
            fly.py
        spy
            spy.py
Run Code Online (Sandbox Code Playgroud)

我想以 superhero 名称导出模块目录,在 setup.py 脚本中,我尝试执行以下操作:

setup(
    ...

    packages=["superhero"],
    package_dir={
        'superhero': 'modules'
    },

    ...)
Run Code Online (Sandbox Code Playgroud)

然后运行

pip install --editable .
Run Code Online (Sandbox Code Playgroud)

在那个目录中。我没有将模块安装在名称 superhero 下,而是将其安装在名称模块下。所以在蟒蛇

> import superhero
ERROR:

> import modules
> 
Run Code Online (Sandbox Code Playgroud)

我将如何重组我的setup.py文件,以便我可以运行 import superhero以导入名为 的包下的所有模块 superhero?我无法从文档中弄清楚这一点。

python setuptools

5
推荐指数
0
解决办法
249
查看次数

解构地图

如果我在这样的javascript中有一个对象:

let obj = {b: 3, c: 4, d: 6}
Run Code Online (Sandbox Code Playgroud)

如果我解构它,我可以很容易地得到不同的部分,例如,如果我这样做,我可以得到c和d:

let {c, d} = obj
Run Code Online (Sandbox Code Playgroud)

现在这很棒,但如果我想制作一张地图:

let m = new Map()
m.set('b', 3).set('c', 4).set('d', 6)
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式获得个别元素:

let c = m.get('c')
let d = m.get('d')
Run Code Online (Sandbox Code Playgroud)

但有没有办法按照我们用标准对象的方式来构造像地图这样的对象.我发现上面的语法在很多情况下使用起来非常简单,它在使用地图时实际上是一个非常大的缺点; 尽管你可以默认获得迭代器等等(在这里列出优势哈哈).

javascript ecmascript-6

5
推荐指数
2
解决办法
4275
查看次数

Object.assign的意外输出

所以我有点惊讶:

Object.assign({}, Math)
Run Code Online (Sandbox Code Playgroud)

其中返回了一个空对象.我这样做是为了建立我自己的数学模块,我可以使用自己的自定义功能扩展,所以我认为这样做很方便:

Object.assign({}, Math, { 
  sqrt: <my-sqrt-implementation>, 
  add: <my-add-implementation >,
})
Run Code Online (Sandbox Code Playgroud)

但我很惊讶地发现没有包含数学条目,为什么呢?在我的控制台中,我得到:

Object.assign({}, Math)
> {}
Run Code Online (Sandbox Code Playgroud)

出了什么问题,怎么解决?

javascript object ecmascript-6

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

Javascript内联if语句

我在javascript控制台中有一些奇怪的结果.我试图寻找三元运算符的替代(更易读)版本,只是为了好玩.打字:

{ if(3===4) {5} else {6} }
Run Code Online (Sandbox Code Playgroud)

在我的控制台中评估为6,但由于某种原因,我无法将其分配给变量,因此运行:

let a = { if(3===4) {5} else {6} }
Run Code Online (Sandbox Code Playgroud)

不要让我直接将它存储到变量中.所以我的主要问题是,如果这个块返回了什么,为什么我不能分配它?

javascript

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

用于添加 shell 别名的 Makefile

我已经在使用 makefile,我希望能够使用它来存储一些用户可以调用的有用别名。我知道我可以使用已经内置的别名创建一个 bash 文件,然后使用源代码运行它,这样我就可以执行以下操作:

# File: aliases.sh
alias useful="command to run"
alias also-useful="another command -to run"
Run Code Online (Sandbox Code Playgroud)

然后我可以在当前终端会话中运行它:

source ./aliases.sh
Run Code Online (Sandbox Code Playgroud)

使用 Makefile

所以我希望用 makefile 实现类似的东西,我希望有一个简单的aliases条目,这样用户就可以运行:

make aliases
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我宁愿避免添加额外的文件,因为我不想为这样简单的任务添加额外的文件。如果您有任何更好的建议,我也愿意听取他们的意见。

bash makefile sh

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

从多个列表中获取元素

给出多个列表,如下所示:

a = [1, 2, 3]
b = [5, 6, 7, 8]
c = [9, 0, 1]
d = [2, 3, 4, 5, 6, 7]
...
Run Code Online (Sandbox Code Playgroud)

我希望能够在开始从第二个列表中获取元素之前将它们组合起来从第一个列表中获取尽可能多的元素,因此结果将是:

result = [1, 2, 3, 8, 6, 7]
Run Code Online (Sandbox Code Playgroud)

有没有一种特别好的方式来写这个.没有for循环,我想不出一个非常简单的.也许列表理解与聪明的拉链.我有兴趣看看你们能想出什么.

提前致谢 :)

python list

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

标签 统计

javascript ×3

ecmascript-6 ×2

python ×2

bash ×1

list ×1

makefile ×1

object ×1

setuptools ×1

sh ×1