在自己内部引用字典

时间:2016-07-07 20:46:17

标签: python dictionary

是否可以从同一个字典中的字典条目中获取值? 我想建立一个目录列表,同时引用以前添加的目录..

common_dirs = {
    'root': '/var/tmp',
    'java_path': os.path.join(dict.get('root'), 'java'),
    'application_path': os.path.join(dict.get('java_path'), 'my_app')
}

3 个答案:

答案 0 :(得分:5)

为什么不更新字典:

my_dict = {'root': '/var/tmp'}
my_dict.update({'file': os.path.join(my_dict.get('root'), 'file')})

请勿使用dict作为名称。您可能稍后需要真正的dict内置。

答案 1 :(得分:1)

没有。在您填写字典初始值设定项时,字典不存在,因此您无法引用它!

但原则上没有理由说字典不能将其自身包含为其中一个值,正如其他答案所解释的那样,但你只能在自己的初始值设定项{}中引用它。 / p>

答案 2 :(得分:0)

您也可以尝试使用类而不是字典:

import os

class Paths:
    def __init__(self, root, filename):
        self.root = root
        self.file = os.path.join(self.root, filename)

root = '/var/tmp'
filename = 'file'

p = Paths(root, filename)
print(p.file)
# /var/tmp/file