“功能”对象不可在本地包中下标

时间:2019-01-24 22:13:44

标签: python-3.x package python-module

尝试学习Python模块和软件包的工作方式时,遇到以下错误,但找不到解决方法:

$ ./myMain.py
Traceback (most recent call last):
  File "./myMain.py", line 6, in <module>
    print(foobar.getKey['A'])
TypeError: 'function' object is not subscriptable

我的目录结构如下:

.
├── myMain.py*
└── utils/
    └── Foo/
        ├── __init__.py
        ├── __pycache__/
        │   ├── __init__.cpython-36.pyc
        │   └── foobar.cpython-36.pyc
        └── foobar.py

myMain.py将是从中导入包的主要脚本。 myMain.py具有以下代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from utils.Foo import foobar

print(foobar.getKey['A'])

__init__.py是一个空文件,foobar.py具有函数定义:

TEST_DICT = {
        'A': 'This is A',
        'B': 'This is B'
}

def getKey(letter):
    return TEST_DICT[letter]

我在这里做什么错了?

1 个答案:

答案 0 :(得分:0)

尝试从Python解释器中运行myMain.py中的代码后,我意识到该函数调用是用错误的语法编写的。代替foobar.getKey['A']的人应该代替foobar.getKey('A'),因为我们在调用函数而不是字典对象。