Python错误:无法访问类中的函数

2024-10-04 09:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始使用python,我完全搞不懂。在

我有以下班级:

class Vault:

  def __init__(self):

    # used to mock collection (table) of ads
    self._ads = [ {
        'id': '00000000-0000-0000-0000-000000000000',
        'date': str(datetime.now().strftime('%Y%m%d')),
      'time': str(datetime.now().strftime('%H%M%S')),
        'source': 'chron.com',
        'advertiser': 'itunes.apple.com',
        'width': 300,
        'height': 250
    } ]
  def get_ad_by_d(self, d):
    myDate = getTodayDate()
    ads = [ ad for ad in self._ads if ad['date'] == d ]
    if len(ads) == 0:
      return None
    elif len(ads) >= 1:
      return ads[0]
  def getTodayDate():
    return str(datetime.now().strftime('%Y%m%d'))

但是,当我调用它时,我得到了以下错误:

NameError: global name 'getTodayDate' is not defined

为什么我不能访问同一类中的另一个函数?我用textMate编写了这段代码,但是在Eclipse中工作时,我从未遇到过访问同一类中相邻函数的问题。我错过什么了吗?在

^{pr2}$

致力于解决上述问题,但在init中实现失败(通过回答找到):

  def __init__(self):
    myDate = getTodayDate()
    myTime = getTodayTime()
    # used to mock collection (table) of ads
    self._ads = [ {
        'id': '00000000-0000-0000-0000-000000000000',
        'date': myDate,
      'time': myTime,
        'source': 'chron.com',
        'advertiser': 'itunes.apple.com',
        'width': 300,
        'height': 250
    } ]

我有一个类似的错误,通过添加self无法解决:

File "/Users/tai/Desktop/FlashY/flashy/repository/mock.py", line 10, in __init__
    myDate = getTodayDate()
NameError: global name 'getTodayDate' is not defined

评论中提到的解决方案:

  def __init__(self):
    myDate = self.getTodayDate()
    myTime = self.getTodayTime()
    # used to mock collection (table) of ads
    self._ads = [ {
        'id': '00000000-0000-0000-0000-000000000000',
        'date': myDate,
      'time': myTime,
        'source': 'chron.com',
        'advertiser': 'itunes.apple.com',
        'width': 300,
        'height': 250
    } ]

Tags: toselfcomdateinitdeftablemock