在python中调用/传递字典对象

在python中调用/传递字典对象,python,dictionary,Python,Dictionary,我有一个有很多函数的类。在一个函数中,我想构建一个dictionary对象,并将该函数调用到另一个函数中。那本词典能被明确地传递吗 以下是我之前所做工作的一个示例: def dict_function(self): dictionary = dict() dictionary['sky'] = 'blue' dictionary['clouds'] = 'white' dictionary['grass'] = 'green' return diction

我有一个有很多函数的类。在一个函数中,我想构建一个dictionary对象,并将该函数调用到另一个函数中。那本词典能被明确地传递吗

以下是我之前所做工作的一个示例:

def dict_function(self):
    dictionary = dict()
    dictionary['sky'] = 'blue'
    dictionary['clouds'] = 'white'
    dictionary['grass'] = 'green'
    return dictionary
但是,到目前为止,我一直以这种方式在其他函数中调用dictionary对象:

def process_function(self):
      obj = self.dict_function()
      print obj['sky']
是否有更好的方法调用process_函数中的变量

首先声明:

self.dictionary = dict()
填充它

def dict_function(self):
    dictionary['sky'] = 'blue'
    dictionary['clouds'] = 'white'
    dictionary['grass'] = 'green'
    return dictionary
重复使用

def process_function(self):
      obj = self.dictionary
      print obj['sky']

Python有字典文本,与通过单独设置键来构建字典相比,字典文本的读取速度更快,也更方便

def dict_function(self):
    return {
        'sky': 'blue'
        'clouds': 'white'
        'grass': 'green'
    }
正如在注释中提到的,如果字典是静态的,那么没有理由拥有一个函数,只需存储字典并访问它即可

您希望每次重新创建词典的唯一原因是,您希望在每次使用词典时对其进行变异,而不会影响将来的使用。不过,听起来您的用例只需要在其他函数中访问字典

class Something:
    def __init__(self):
        self.colours = {
            'sky': 'blue'
            'clouds': 'white'
            'grass': 'green'
        }

    def draw():
        screen.rect(100, 100, 200, 300, self.colours["sky"])
        ...

我不这么认为;我会那样做的。你多久用一次字典?如果不止一次,您可能希望在
\uuuu init\uuuu
函数中设置它,并访问诸如
self.dictionary['sky']
之类的值,以避免重新创建。它只使用一次,不是静态的,不断地被重新生成,这就是为什么我没有把它放在init中的原因,谢谢你的洞察力,它不应该是dict_function()中的self.dict而不是dictionary吗?另外,为什么不在进程_函数中打印self.dict['sky']呢?@user3614014然后检查下面的答案可能就是你想要的答案?是和否,我喜欢下面的答案,我觉得它更适合于其他可能觉得这个话题有趣的人。但是谢谢你尝试回答我的问题!虽然这并不是我所希望的简单性,但我很喜欢你给出的例子,这些例子有助于展示我开始做的事情的不同方式。谢谢