小编koj*_*iro的帖子

你能解释一下这个功能吗?

def a(n):
    return max([len(n)] + [a(i) for i in n]) if isinstance(n, list) else 0
Run Code Online (Sandbox Code Playgroud)

这是我最近的一次测试,我无法让列表理解得失败.所以基本上这个函数应该返回最大列表的长度(这是我假设基于正确的答案)我会理解,如果不是这部分函数:

+ [a(i) for i in n])
Run Code Online (Sandbox Code Playgroud)

当我看到那个部分时,看起来它增加了迭代的列表长度.有人可以阐明那部分的目的吗?更具体地说,添加的原因.

编辑:所以仔细看之后......看起来函数将第一个列表的长度放在一个列表中,然后放下下一个列表的长度并返回最大值?...这是如何工作的?

python list-comprehension

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

为什么`dir`在Python 2中列出了一些带有unicode名称的attrs?

我试图在boto3中学习关于低级s3 api的事情,所以我做到了

from pprint import pprint
import boto3
client = boto3.client('s3')
pprint(dir(client))
Run Code Online (Sandbox Code Playgroud)

在REPL中注意到一些令人惊讶的事情(至少对我而言).既然那里有很多人,我会把它归结为这个问题:

>>> from itertools import groupby
>>> groups = groupby(sorted(dir(client), key=type), key=type)
>>> pprint([g[0] for g in groups])
[<type 'str'>, <type 'unicode'>]
Run Code Online (Sandbox Code Playgroud)

一些属性有名称unicode,有些属于str.

我的猜测是在boto3源代码中,有些模块有from __future__ import unicode_literals.另一方面,boto3所做的不仅仅是动态代码生成的公平份额.

有谁知道一些attrs是unicode的真正原因,有些是str,以及它的含义(如果有的话)是什么?

python python-2.7 boto3

7
推荐指数
0
解决办法
111
查看次数

你能直接将一个操作应用于map/reduce/filter中的参数吗?

mapfilter经常与列表内涵互换,但reduce不那么容易换出的mapfilter(再说,在某些情况下,我还是比较喜欢的功能语法反正).但是,当你需要对参数本身进行操作时,我发现自己正在进行语法体操,并最终必须编写整个函数来保持可读性.

我将使用map插图单元测试简单,但请记住,现实生活中的用例可能更难以表达为列表理解.

我发现了两种混乱的方法,但我实际上并没有使用它.

[afunc(*i) for i in aniter] == map(afunc, *zip(*aniter))
[afunc(*i) for i in aniter] == map(lambda i: apply(afunc, i), aniter)
Run Code Online (Sandbox Code Playgroud)

是否有任何简洁,优雅的方式来表达这些表达的右手边?

python iteration syntax readability

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

我如何设置$?在PS1调用的函数中?

我目前在bash中有一个提示,它调用一个函数来输出最后一个命令运行的返回码(如果非零):

exit_code_prompt()
{
    local exit_code=$?
    if [ $exit_code -ne 0 ]
    then
        tput setaf 1
        printf "%s" $exit_code
        tput sgr0
    fi
}


PS1='$(exit_code_prompt)\$ '
Run Code Online (Sandbox Code Playgroud)

除非$?不重置,除非运行另一个命令,否则这样可以很好地工作:

$ echo "works"
works
$ command_not_found
bash: command_not_found: command not found
127$ 
127$ 
127$ 
127$ echo "works"
works
$
Run Code Online (Sandbox Code Playgroud)

是否可以$?在第一次exit_code_prompt()运行时重置/取消设置父shell 的值,使其不再继续重复提示中的值?

非常感谢,史蒂夫.

bash command-prompt .bash-profile ps1

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

Python单线程(将perl转换为pyp)

我想知道是否有可能制作一个与pyp具有相同功能的单线程.

perl -l -a -F',' -p -e'if ($. > 1) { $F[6] %= 12; $F[7] %= 12;$_ = join(q{,}, @F[6,7]) }'
Run Code Online (Sandbox Code Playgroud)

这将采用逗号分隔的数字列表,每行8个数字,并以相同的格式输出,除了每行中的最后两个数字以模12减少.它还首先逐字输出第一行(标题行).

我有很多这些不起眼的perl单行程序,我想在第一个实例中将它们全部翻译成python.

python pyp

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

如何git checkout一个名为与目录相同的远程分支?

我们有一个远程分支,deploy用于构建和测试部署脚本.毫不奇怪,部署脚本最终会在一个名为的目录中deploy.既然目录deploy在分支中master,那么在进行初始克隆时,实际检查该分支是很麻烦的.

$ git clone bitbucket.org:/myplace/mything
$ cd mything
$ ls
deploy          extensions      installExtensions   src         tests
$ git branch -r | grep dep
  origin/deploy
$ git checkout deploy
$ git branch
* master
$ git checkout origin/deploy
Note: checking out 'origin/deploy'.

You are in 'detached HEAD' state. [SNIP]
Run Code Online (Sandbox Code Playgroud)

此时我应该创建一个名为local的分支deploy并将其设置为跟踪远程?是否有任何语法我可以给git所以它知道我想要签出远程分支,而不是本地路径?

git branch

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

Magento中不同的*get helper*方法有什么区别?

我已经看到了几种不同的方法来获得特定的helper,我希望有人可以解释每种方法的优缺点.例如,template/checkout/cart/sidebar/default.phtml你会看到两者$this->helper('checkout')Mage::helper('checkout').这两种方法在同一模板中有充分的理由吗?

以下是我在Magento找到帮手的所有不同方式:

abstract class Mage_Core_Block_Abstract extends Varien_Object
{
…
    /**
     * Return block helper
     *
     * @param string $type
     * @return Mage_Core_Block_Abstract
     */
    public function getHelper($type)
    {
        return $this->getLayout()->getBlockSingleton($type);
    }

    /**
     * Returns helper object
     *
     * @param string $name
     * @return Mage_Core_Block_Abstract
     */
    public function helper($name)
    {
        if ($this->getLayout()) {
            return $this->getLayout()->helper($name);
        }
        return Mage::helper($name);
    }
…
}

class Mage_Core_Model_Layout extends Varien_Simplexml_Config
{
…
    /**
     * Enter description here...
     *
     * …
Run Code Online (Sandbox Code Playgroud)

magento

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

自定义Magento管理员配置密码加密

我需要sftp服务器的密码作为我正在处理的Magento模块的配置字段.添加字段非常简单,但Magento实际上并没有因为它有一个frontend_type而加密该值password.

<sftp_password translate="label">
    <label>SFTP Password</label>
    <frontend_type>password</frontend_type>
    <sort_order>170</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>1</show_in_store>
</sftp_password>
Run Code Online (Sandbox Code Playgroud)

我无法找到有关如何正确加密此值的文档.如何在密码存储在数据库中时确保密码加密?

magento password-encryption

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

抽象基类与鸭子类型

Python 具有针对容器类型的特定ABC。它说它们是,“……用于测试一个类是否提供了特定的接口。” (而且它们对某些 mixin 也很有用,但我们暂时先忽略它。)

我很难弄清楚为什么这些 ABC 中的一些真的很有用。也许我的问题只是文档中的例子太学术了,但使用这些例子:

# Verbatim
size = None
if isinstance(myvar, collections.abc.Sized):
    size = len(myvar)

# Is that so much better than
size = None
if hasattr(myvar, '__len__'):
    size = len(myvar)
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,您避免导入并且代码对我来说似乎更明确。你可以从它的名字中推断出 collections.abc.Sized 的含义,或者查找它,但它并不像“如果它有长度,就得到它的长度”那样明确。

集合类型测试的 abc 方法真的比显式hasattr测试更符合 Python 习惯吗?如果是,为什么?(不单纯比复杂好王牌明确优于隐含在这种情况下?)

python idioms duck-typing

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

水线,在阵列中找到数组

我有视频模型:

module.exports = {

  attributes: {
    id: 'string',
    tags: 'array'
  },
}
Run Code Online (Sandbox Code Playgroud)

我想找到所有带有标签的视频,例如"Hello"或"World".我可以轻松获得所有视频:Video.find({tags:"Hello"}).我看到了搜索id:[1,2,3]的例子,但是当key(id => tags)是数组时却没有.

javascript node.js sails.js waterline

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