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

时间:2011-03-03 06:01:44

标签: python class dictionary constructor

嘿我是一个python新手,我试图在类的构造函数中设置一个dict,但每当我尝试访问一个元素时,它返回None。这是我的代码

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']时,它都会返回None。

2 个答案:

答案 0 :(得分:1)

您可以发布示例代码吗?

我问这个是因为我不确定你要做什么。 <instance>.pre_defined_macros['_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'
>>> 

我还尝试从其他方法访问pre_defined_macros。像这样:

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

答案 1 :(得分:0)

Aah ......知道了!

其实我已经设置了

self.title = None

所以在创建词典时

'_TITLE': self.title

“_TITLE”

的值无

缺乏专注力!!