我无法设置默认值以传递给方法中的字典

时间:2019-02-09 05:50:00

标签: python-3.x dictionary

我要做的是将颜色字典设置为默认值,因此,如果用户不想指定颜色字典,我们将始终使用默认颜色作为帮助。

我不知道如何解决这个问题。

class paint_window:
    def __init__(self, display_height,display_width, colors_dict ={black: (0,0,0),white : (255,255,255),red : (255,0,0)}):
        self.display_height = 800
        self.display_width = 600
        self.colors_dict = colors_dict

但是我遇到了这个错误:

File "/home/harsh/Documents/Python_pygame/paint_window.py", line 5, in paint_window
    def __init__(self, display_height,display_width, colors_dict = {black : (0,0,0),white : (255,255,255),red : (255,0,0)}):
NameError: name 'black' is not defined

screenshot

1 个答案:

答案 0 :(得分:0)

由于错误状态,未定义CVPixelBuffer。这是因为black没有分配任何东西。代替这个:

black

您可能想要这样:

{black: (0,0,0), white: (255,255,255), red: (255,0,0)}

在这里,字典键是字符串(键可以是任何不可变的对象:字符串,整数,元组等)。从技术上讲,您可以也可以:

{'black': (0,0,0), 'white': (255,255,255), 'red': (255,0,0)}

由于black = 'black' white = 'white' red = 'red' {black: (0,0,0), white: (255,255,255), red: (255,0,0)} blackwhite是有效名称,因此现在可以使用。