Python 类名未定义,但已定义

Python 类名未定义,但已定义,python,python-3.x,Python,Python 3.x,我只想创建一个带有名称的静态字段的类定义。名为exercises.py的文件包含: 第一个错误: FAIL: test_00_packages (__main__.Ex00) Traceback (most recent call last): File "ex00.py", line 55, in test_00_packages self.assertTrue("Exercise00" in globals()) AssertionError: False is not true 后来:

我只想创建一个带有名称的静态字段的
定义。名为
exercises.py
的文件包含:

第一个错误:

FAIL: test_00_packages (__main__.Ex00)
Traceback (most recent call last):
File "ex00.py", line 55, in test_00_packages
self.assertTrue("Exercise00" in globals()) 
AssertionError: False is not true
后来:

class Exercise00:
    def __init__(self, STUDENT_NAME):
        self.STUDENT_NAME = 'Name Name'
但是如果我试着打印
Exercise00.STUDENT\u NAME
我就得到了
name错误:未定义名称“Exercise00”

但我想是我定义的

下面是完整的错误:

ERROR: test_01_static_field (__main__.Ex00)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "ex00.py", line 60, in test_01_static_field
    print("[I] Name: " + Exercise00.STUDENT_NAME)
NameError: name 'Exercise00' is not defined

----------------------------------------------------------------------
我的任务是创建一个名为
Exercise00
类,其中包含一个静态字段
STUDENT\u NAME

ex00.py中的行是:

def test_00_packages(self):
    self.assertTrue("Exercise00" in globals())
两个问题:

  • 测试类位于一个单独的文件
    exercises.py
    ;在模块内容从
    ex00.py
    可见之前,您需要从该文件(
    从练习导入练习00
    )导入相关功能

  • 一旦你修复了它,你会得到一个不同的错误。正如测试的名称所说,您应该查找一个
    静态字段
    ,即属于类本身的内容。此代码将
    STUDENT\u NAME
    附加到
    Exercise00
    的实例


  • 我想您需要将
    STUDENT\u NAME
    定义为类级字段,而不是实例级属性:

    class Exercise00:
    学生姓名='姓名'
    
    您可以在错误消息中注意到,测试调用类级别字段
    Exercise00.STUDENT\u NAME

    打印(“[I]姓名:”+Exercise00.学生姓名)
    
    您还需要在测试模块中导入
    class Exercise00

    从练习导入练习00
    

    一旦您使用test
    ex00.py
    将import语句添加到文件中,类名字符串就会出现在
    globals()
    中,并且测试通过。

    请创建一个我们需要查看您尝试打印的代码以及完整的回溯(人们通常会误记/误报错误),并解释这是否在同一个文件中。这是一个外部文件,它试图打印学生姓名。例如,
    STUDENT\u NAME
    是一个实例字段,因此您需要对象的实例。但是您仍然需要创建一个实例属性,因为它不能解决您遇到的第一个错误,但是请参阅,了解如何创建静态字段(类属性),而不是像您现在这样创建实例属性。是的,我考虑了这一点。在ex00.py中,需要有import语句。否则,ex00.py无法使用exercise.py中的内容。请共享其他错误详细信息和测试?exercises.py有一个断言错误。断言类Exercises00在global中您可以共享问题中的代码和确切错误消息吗?这会更有帮助