我需要将Student类中的getSelectedCourses方法中的selectedCourses传递给Advisor类方法approveselectedcourses。实际上,我需要使用Student类的sendCourseRegistrationRequest方法将getSelectedCourses方法中的selectedCourses列表传递给Advisor类方法ApproveSelectedCourse,但我不知道如何将列表从一个类传递给另一个类。或者如何在学生课堂上把它传给一个单独的方法。我现在没有主意,也没有时间了。所以这是我最后的机会了。谢谢你的帮助!你知道吗
我尝试将Student类作为参数添加到Advisor类中,我尝试在所有类之外定义一个变量来引用我尝试使用的Student类中的方法。我已经尝试将list变量传递给Student类中的一个单独的方法。我试过让Student方法成为class方法和static方法,但我甚至不知道@classmethod&;staticmethod究竟是如何工作的,也不知道如何使用它们来帮助我。在这一点上,我已经尝试了我能想到的一切。你知道吗
import random
class Person:
def __init__(self, name):
self.name = name
def getName(self):
print('Student name is: {}'.format(self.name))
class Student(Person):
def __init__(self, name, stuID):
#print('I am a student')
Person.__init__(self, name)
self.stuID = stuID
self.finishedCourses = []
self.selectedCourses = []
def getStuID(self):
print('Student ID is: {}'.format(self.stuID))
def getSelectedCourse(self, courseList):
SelectedCourse = []
for i in courseList:
if i < 400:
SelectedCourse.append(i)
#print(SelectedCourse)
for key in prerequisiteDict.keys():
if key in SelectedCourse:
SelectedCourse.remove(key)
#print(SelectedCourse)
i = 0
while i <= 2:
finishedCourses = random.choice(SelectedCourse)
self.finishedCourses.append(finishedCourses)
#print(finishedCourses)
i += 1
print('Finished courses: {}'.format(self.finishedCourses))
x = 0
while x <= 2:
selectedCourses = random.choice(courseList)
self.selectedCourses.append(selectedCourses)
x += 1
print('Selected courses: {}'.format(self.selectedCourses))
def sendCourseRegistrationRequest(self):
pass
## for key in prerequisiteDict.keys():
## if key not in self.finishedCourses:
##
## self.finishedCourses.remove(key)
## print('Update selected courses: {}'.format(self.finishedCourses))
def updateSelectedCourse():
pass
class Advisor(Person):
def __init__(self, name):
print("I'm here.")
Person.__init__(self, name)
def approveSelectedCourse(self, Student):
print("I'm here2.")
## Student.__init__(self, finishedCourses)
## self.var1 = Student.finishedCourses
## print('self.var1 is {}: '.format(self.var1))
##
##
## for key in prerequisiteDict.keys():
##
## if key in SelectedCourse:
## return True
## else:
## self.var1.remove(key)
## print('updated course selection: {}'.format(self.selfvar1))
##
##
## for key in prerequisiteDict.keys():
## if key in getSelectedCourse:
##
## getSelectedCourse.remove(key)
## print(getSelectedCourse)
courseList = [110, 213, 315, 316, 412, 121, 223, 326, 328, 422,
136, 238, 335, 336, 432, 140, 243, 345, 346, 448,
150, 253, 355, 356, 452]
prerequisiteDict = {213:110, 412:316, 326:223, 422:328,
238:136, 345:243, 355:253, 452:356}
getSelectedCourse = Student.getSelectedCourse
stuObj = Student('Alice', 98980)
stuObj.getName()
stuObj.getStuID()
stuObj.getSelectedCourse(courseList)
#stuObj.sendCourseRegistrationRequest()
##AdvObj = Advisor('Cindy')
##AdvObj.approveSelectedCourse('Alice')
基本上,我的代码通过Student getSelectedCourses方法工作,这是我所想象的。在我看来,解决我的问题最简单的方法就是把自选课程=[]到sendCourseRegistrationRequest学生方法,然后将其传递给Advisor方法approveSelectedCourse,后者将检查selectedCourses列表,如果selectedCourses中存在prereq中的一个键,则会删除该键从selectedCourses列表中选择课程。理想的情况下,我只想找出一种方法,将selectedCourses列表从学生类传递到导师类,但我不知道如何传递。你知道吗
我认为这里的问题是组织。因为
Advisor
继承自Person
,所以没有self.selectedCourses
属性。我要做的是两件事之一:Advisor_instance.advisees
属性中,这样您就可以按名称进行查找1个
我个人认为,对于您的用例来说,第一个实现更直观一些。advisor可以有很多建议,存储
Student
的实例可以进行简单的名称查找,您不需要传递信息。你知道吗将其更具体地扩展到您要查找的内容:
二
如果
Advisor
的实例更一般,也就是说,不需要有一个特定的Advisor
,只要它们能够完成类似Advisor
的方法,这种方法就会更好地工作。在这种情况下,name
属性可以删除,方法可以是静态的,在这种情况下,为什么要使用类?你知道吗相关问题 更多 >
编程相关推荐