为了账号安全,请及时绑定邮箱和手机立即绑定

NameError:未定义名称“Class”

NameError:未定义名称“Class”

幕布斯7119047 2021-12-17 16:52:20
当我编译时,我收到此错误:Traceback (most recent call last):  File "c:/Users/dvdpd/Desktop/ProjectStage/Main.py", line 1, in <module>    class Main:  File "c:/Users/dvdpd/Desktop/ProjectStage/Main.py", line 6, in Main    test = Reading()NameError: name 'Reading' is not defined代码:class Main:    print("Welcome.\n\n")    test = Reading()    print(test.openFile)class Reading:    def __init__(self):        pass    def openFile(self):        f = open('c:/Users/dvdpd/Desktop/Example.txt')        print(f.readline())        f.close()我不能使用这个类Reading,我不知道为什么。 Main并且Reading在同一个文件中,所以我认为我不需要import.
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

您需要定义Reading之前Main


查看完整回答
反对 回复 2021-12-17
?
呼唤远方

TA贡献1856条经验 获得超11个赞

Python 源文件由解释器从上到下解释。

所以,当你Reading()在 class 内部调用时Main,它还不存在。您需要交换声明放在Readingbefore Main


查看完整回答
反对 回复 2021-12-17
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

前向声明在 Python 中不起作用。因此,仅当您按如下方式创建 Main 类的对象时,您才会收到错误:


class Main:

    def __init__(self):

        print("Welcome.\n\n")

        test = Reading()

        print(test.openFile)


# Main() # This will NOT work


class Reading:

    def __init__(self):

        pass


    def openFile(self):

        f = open('c:/Users/dvdpd/Desktop/Example.txt')

        print(f.readline())

        f.close()


# Main() # This WILL work


查看完整回答
反对 回复 2021-12-17
  • 3 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信