我试图使用python3类型注释功能。
以下是一些没有注释的玩具函数:
def fa(func, *args):
return func(*args)
def fb(x:str):
return x + " returned."
fa(fb, "Newton")
这些很好用。但一旦我为fa
添加了一些注释,就会出现错误:
def fa(func:function, *args):
return func(*args)
def fb(x:str):
return x + " returned."
fa(fb, "Newton")
Traceback (most recent call last):
File "/usr/local/lib/python3.4/site-packages/IPython/core/interactiveshell.py", line 2883, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-17-193b74f82e47>", line 1, in <module>
def fa(func:function, *args):
NameError: name 'function' is not defined
为什么会发生这种情况?我该如何解决?
因为您在函数参数中定义了一个变量,但该参数在函数外不存在。你必须写作
fa(function=“Newton”)
正如错误消息告诉您的,没有定义name函数。如果要将提示作为函数,请将其置于引号中:
def fa(func: 'function', *args):
除了@johnrsharpe所说的之外,如果您不想使用名称函数
# from __future__ imports must occur at the beginning of the file. DO NOT CHANGE!
from __future__ import annotations
错误消息告诉您,名称函数
没有定义。如果你想把提示作为一个函数,把它放在引号中:
def fa(func: 'function', *args):
问题内容: 我目前正在创建一个有趣的python线性代数模块,并使用该语言进行实践。我最近尝试将类型注释添加到模块中,如下所示: 但是,当我尝试导入它时,它吐出一个。我承认这个问题已经在这里以某种形式得到了回答,但似乎并不能完全解决我的情况。 我想知道的是: 我已经在该文件中按字面值定义了该类。为什么说未定义名称? 如何定义可用于注释的方式(作为)? 问题答案: 您有一份前瞻性声明;函数(作为方法
我目前正致力于创建一个python线性代数模块,以获得乐趣并练习该语言。我最近尝试向模块添加类型注释,如下所示: 但是,当我尝试导入此内容时,它会抛出一个。我承认这个问题已经在这里以某种形式得到了回答,但它似乎并没有完全为我的情况提供答案。 我想知道的是: 我已经在这个文件中定义了这个类。为什么它说这个名字没有定义
我得到一个错误,当我试图运行这个简单的脚本: 假设我输入“dude”,我得到的错误是: 我正在运行MacOSX10.9.1,我正在使用安装了Python3.3的PythonLauncher应用程序来运行脚本。
问题内容: 我对python相对较新,并且在命名空间方面遇到一些问题。 问题答案: 由于不知道是谁,因此您看到的味精应该在调用时发生(调用很好),请将其更改为:
问题内容: 我正在尝试在python3中编写一个简单的递归函数。在学习OO Java时,我还想编写涉及对象的Python代码。这是我的下面的代码。我提示用户输入一个数字,屏幕应该显示每个小到5的整数。 但是,当我在终端上运行它时,它说:“ NameError:未定义名称’recursive’”。错误如下所示: 是什么导致问题出在这里?我知道如何编写递归函数,给它一个参数,然后使其在终端上运行。但是
班级水平 方法级