在构造函数中设置dict(python)

在构造函数中设置dict(python),python,class,dictionary,constructor,Python,Class,Dictionary,Constructor,嘿,我是python新手,我正在尝试在类的构造函数中设置dict。然而,每当我尝试访问元素时,它都不会返回任何结果。这是我的密码 class GoogleApp: def __init__(self, path): self.name = "Google App" self.description = "Creates an new google app project." self.title = None self.path = path sel

嘿,我是python新手,我正在尝试在类的构造函数中设置dict。然而,每当我尝试访问元素时,它都不会返回任何结果。这是我的密码

class GoogleApp:

  def __init__(self, path):
    self.name = "Google App"
    self.description = "Creates an new google app project."
    self.title = None
    self.path = path
    self.pre_defined_macros = {
      '_NAME': self.name , 
      '_DESCRIPTION': self.description,
      '_TITLE': "Shoutout",
      '_BASE_PATH': self.path,
      '_PATH': lambda: os.path.join(self.path, self.title)
    }

现在,每当我尝试从其他方法访问self.pre_defined_macros[''TITLE']时,它都不会返回任何值。

您能发布示例代码吗

我问这个是因为我不知道你想做什么<代码>预定义的宏[''u TITLE']在我测试时运行良好

>>> class GoogleApp:

  def __init__(self, path):
    self.name = "Google App"
    self.description = "Creates an new google app project."
    self.title = None
    self.path = path
    self.pre_defined_macros = {
      '_NAME': self.name , 
      '_DESCRIPTION': self.description,
      '_TITLE': "Shoutout",
      '_BASE_PATH': self.path,
      '_PATH': lambda: os.path.join(self.path, self.title)
    }


>>> f  = GoogleApp('foo')
>>> f.pre_defined_macros['_TITLE']
'Shoutout'
>>> 
我还尝试从另一种方法访问
预定义的\u宏。像这样:

>>> class GoogleApp:
    def __init__(self, path):
        # Your original code here.
    def get_title(self):
        return self.pre_defined_macros['_TITLE']


>>> f  = GoogleApp('foo')
>>> f.get_title()
'Shoutout'
>>> 
啊。。。明白了

实际上我已经准备好了

self.title = None
所以在创建字典的时候

'_TITLE': self.title
“无”是“\u TITLE”的值


注意力不集中

下划线表示私有变量。当您在没有下划线的情况下给出时会发生什么。@ignacio,yes是正确的。我太困了,无法回答。对不起!实际上“_TITLE”:“shoutoot”对不起!事实上,“\u TITLE”:“Shoutout”起作用,但是当“\u TITLE”=self.TITLE时,它不返回任何值,就像我在“\u DESCRIPTION”和“\u NAME”上遇到同样的问题一样