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