我有一个有很多功能的课程。在一个函数中,我想构建一个字典对象并将该函数调用到另一个函数中。该词典可以明确传递吗?
这是我以前做过的一个例子:
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中的变量?
答案 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"])
...