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

时间:2014-11-04 19:04:09

标签: python dictionary

我有一个有很多功能的课程。在一个函数中,我想构建一个字典对象并将该函数调用到另一个函数中。该词典可以明确传递吗?

这是我以前做过的一个例子:

def dict_function(self):
    dictionary = dict()
    dictionary['sky'] = 'blue'
    dictionary['clouds'] = 'white'
    dictionary['grass'] = 'green'
    return dictionary

但是,到目前为止,我一直在用其他函数调用字典对象:

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

有没有更好的方法来调用process_function中的变量?

2 个答案:

答案 0 :(得分:1)

首先声明:

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']

答案 1 :(得分:1)

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"])
        ...