'function'对象在本地包中不可订阅

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了'function'对象在本地包中不可订阅相关的知识,希望对你有一定的参考价值。

在尝试学习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]

我在这做错了什么?

答案

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

以上是关于'function'对象在本地包中不可订阅的主要内容,如果未能解决你的问题,请参考以下文章

为啥Java的"函数"叫做方法?(为啥用'method',而不是'function')

'function'对象没有属性'assert_called_once_with'

AttributeError:类型对象'numpy.ndarray'在import numpy 1.15.4上没有属性'__array_function__'(示例代码

$('#id').method()在method方法内部如何获取$('#id')对象

字典理解:TypeError:'builtin_function_or_method'对象不可迭代

axios怎么模拟form表单提交,怎么传递FormData对象