创建导入类的实例时出错

2024-09-27 00:19:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个子类Course类,如下所示:

# course.py
class Course:
    """Represent a single Course"""
    kind = 'Gen Ed'
    def __init__(self, name, number) :
        self._name = name # 'private' instance variable\
        self._number = number
        self.__display()
    def display(self):
        print(self.kind,"Course:" , self._name, self._number, sep=" ")
    __display = display # private copy


class CSCourse(Course):
    """Represent a single CS Course"""
    kind = 'CS' # class variable shared by all CSCourses
    def __init__(self, name, number, language, numberOfPrograms):
        Course.__init__(self, name,  number)
        self._language = language
        self._numberOfPrograms = numberOfPrograms
    def display(self):
        Course.display(self)
        print('Language', self._language,
         'Number Of programs:', self._numberOfPrograms, sep = ' ')

我按如下方式导入模块:

>>>from course import *

这不会引发任何异常,但是当我发出以下命令调用构造函数时,我得到了下面的错误

>>> cs360=CSCourse("Special Topics", 360, "python", 21)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'CSCourse' is not defined

请问我做错了什么?我还尝试查看导入的类中有哪些方法可用。似乎什么都没有进口

>>> import inspect
>>> inspect.getmembers(Course, lambda a:not(inspect.isroutine(a)))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Course' is not defined
>>> inspect.getmembers(CSCourse, lambda a:not(inspect.isroutine(a)))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'CSCourse' is not defined

Tags: nameselfnumberinitdefdisplaynotlanguage

热门问题