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

函数名称在python类中未定义

漆雕博
2023-03-14
问题内容

我对python相对较新,并且在命名空间方面遇到一些问题。

class a:
    def abc(self):
        print "haha" 
    def test(self):
        abc()

b = a()
b.abc() #throws an error of abc is not defined. cannot explain why is this so

问题答案:

由于test()不知道是谁abc,因此NameError: global name 'abc' is not defined您看到的味精应该在调用时发生b.test()(调用b.abc()很好),请将其更改为:

class a:
    def abc(self):
        print "haha" 
    def test(self):
        self.abc()  
        # abc()

b = a()
b.abc() #  'haha' is printed
b.test() # 'haha' is printed


 类似资料:
  • 问题内容: 我正在使用Python 3.2。试过这个: 并得到以下错误: 尝试打印到交互式控制台中-出现此错误: 是在Python 3.2中真正删除的吗?如果是这样,还有什么选择? 问题答案: 它已移至。

  • 问题内容: 我目前正在创建一个有趣的python线性代数模块,并使用该语言进行实践。我最近尝试将类型注释添加到模块中,如下所示: 但是,当我尝试导入它时,它吐出一个。我承认这个问题已经在这里以某种形式得到了回答,但似乎并不能完全解决我的情况。 我想知道的是: 我已经在该文件中按字面值定义了该类。为什么说未定义名称? 如何定义可用于注释的方式(作为)? 问题答案: 您有一份前瞻性声明;函数(作为方法

  • 我试图使用python3类型注释功能。 以下是一些没有注释的玩具函数: 这些很好用。但一旦我为添加了一些注释,就会出现错误: 为什么会发生这种情况?我该如何解决?

  • 问题内容: 运行python程序时出现错误: 游戏从这里开始。 是什么导致此错误? 问题答案: 您正在尝试使用Python 3运行Python 2代码库。在Python 3中已重命名为。 而是使用Python 2运行游戏。不要试图将它移植,除非你知道自己在做什么,很可能会出现超越更多的问题与。 作为记录,您看到的不是语法错误,而是运行时异常。 如果您确实知道自己在做什么,并且正在积极地使Pytho

  • 问题内容: 我正在尝试使用一个名为bidi的Python包。在此程序包(algorithm.py)中的模块中,尽管它是程序包的一部分,但仍有一些行会给我带来错误。 以下是这些行: 这是错误消息: 我应该如何重新编写代码的这一部分,使其可以在Python3中使用?另外,如果有人在Python 3中使用了bidi软件包,请让我知道他们是否发现了类似的问题。我感谢您的帮助。 问题答案: Python 3

  • 我试图使用一个名为Bidi的Python包。在这个包(algorithm.py)中的一个模块中,有一些行给我错误,尽管它是包的一部分。 以下是台词: 下面是错误消息: 我应该如何重新编写代码的这一部分,使其在Python3中工作?另外,如果有人将bidi软件包与Python3一起使用,请告诉我他们是否发现了类似的问题。我感谢你的帮助。