当前位置: 首页 > 面试题库 >

当我的python函数存在于同一文件中时,为什么未定义它?

王杰
2023-03-14
问题内容

我有一个简单的函数,我将其称为myFunction。它使用两个参数,对其进行一些计算,然后返回结果。

我也有一个类,MyClass其中包含一个具有如下标头的构造函数:

__init__(self, bar, fun=myFunction):

当我尝试运行此类中的任何内容时,出现以下错误:

MyClass
    def __init__(self, bar, fun=myFunction):
NameError: name 'myFunction' is not defined

如果删除此类,则可以在Python Shell中使用myFun,那怎么办?


问题答案:

您尚未显示实际代码,因此很难确定,但是我敢肯定myFunction在之后定义MyClass__init__定义方法时将评估默认值表达式,因此myFunction必须在此时定义。以后定义它为时已晚。



 类似资料:
  • 问题内容: 在Java 8中,Collection接口扩展了两个方法,它们返回return :返回顺序流;和,返回可能并行的流。Stream本身也具有一种返回等效并行流的方法(将当前流更改为并行或创建新流)。 复制有明显的缺点: 令人困惑。提出一个问题,假设parallelStream()可能返回顺序流,是否必须同时调用parallelStream()。parallel()以确保流是并行的。如果不

  • 以下是输出信息: 线程“main”java.lang.noClassDeffounder:top/example/study/testclass(名称错误:top/example/study/testclass)在java.base/java.lang.classloader.defineclass1(本机方法)在java.base/java.lang.classloader.defineclas

  • 问题内容: 如果将它们放在document.ready()函数中,则函数的定义为未定义: 为什么会这样?我确定我只需要一些简单的理解即可:) 问题答案: 不确定为什么在范围内定义函数对您很重要,但是您可以通过预先声明使其起作用: 显然,由于代码尚未运行,您之后不能立即从内联脚本中调用,但是您可以稍后再调用该函数。 只要确保在代码运行之前没有任何东西可以尝试调用(或进行无害函数的初始声明)。

  • 问题内容: 在严格模式下使用javascript时,为什么在匿名函数中未定义此函数?我知道为什么这样做可能有意义,但是我找不到任何具体答案。 例: 问题答案: 这是因为,在ECMAscript 262第5版之前,如果使用的人忘记使用该关键字,那会造成很大的混乱。如果在ES3中调用构造函数时忘了使用,请引用全局对象(在浏览器中),然后用变量破坏全局对象。 这是可怕的行为等人在ECMA决定,只是为了集

  • 我正在尝试使用JS SDK在Dropbox上上传一个文件。下面是我试图调用函数的html代码: 这是定义函数的文件 但是,由于我不知道的原因,我的函数不能被调用。我得到错误“referenceerror:Dropupload is not defined”,我不知道这是否与问题有关,但我得到另一个错误:“syntaxerror:import declarations may only at top

  • 问题内容: 我最近在查看Python 3.3语法规范时发现了一些有趣的东西: 在Python 2中缺少可选的“箭头”块,并且在Python 3中找不到有关其含义的任何信息。事实证明这是正确的Python,并已被解释器接受: 我认为这可能是某种前提语法,但是: 我无法x在此处进行测试,因为它仍未定义, 无论我在箭头(例如2 < 1)后面加上什么,它都不会影响功能行为。 熟悉此语法的任何人都可以解释吗