0

我已经编写了这个返回 a 的函数dictionary,我认为通过itertools或仅使用yeildi 可以返回dictionary,但我从来没有这样做过dictionary

def configDb():
    """ Reads git global config file

        Returns:
            config(dict): git config settings
    """
    # Read git config file
    configFile, _ = execGitCommand('git config --list')
    config = {}
    for line in (each for each in configFile.split("\n") if each):
        config[line.split("=")[0]] = line.split("=")[-1]

    return config

我怎样才能让这个函数以一种我不必调用的方式运行configDb(),而只是configDb[key]应该给我价值?

4

2 回答 2

0

字典不能被generator编辑,但你可以yield 键值元组

def configDb():
    """ Reads git global config file

        Returns:
            config(dict): git config settings
    """
    # Read git config file
    configFile, _ = execGitCommand('git config --list')
    config = {}
    for line in (each for each in configFile.split("\n") if each):
        yield line.split("=")[0], line.split("=")[-1]
于 2014-02-16T07:04:55.443 回答
0

部分配置文件几乎没有用,因此“生成的字典”似乎没有多大意义。

def configDb():
    """ Reads git global config file

        Returns:
            config(dict): git config settings
    """
    # Read git config file
    configFile, _ = execGitCommand('git config --list')
    rows = (line.split("=") for line in configFile.splitlines())
    return dict(row for row in rows if len(row)==2)
于 2014-02-16T07:12:31.800 回答