我正在学习Python和类,遇到了一个需要帮助的挑战
当我试图将数据从一个类方法传递到另一个类方法时,我遇到了一个错误,告诉我它错过了一个位置参数
例如:
class Student:
def __init__(self, name):
self.name = name
def pass_to_dl(self):
DataLayer.Datalayer.create_dict_entry(self.name)
class Datalayer:
def __init__(self):
self.dict = {}
def create_dict_entry(self, name):
new_name = {"name":name}
self.dict.update(new_name)
new_student = Student("some_name")
我得到的错误是:
TypeError: create_new_student() missing 1 required positional argument:
我假设这是因为create_dict_条目需要两个参数,而我只发送一个
现在,如果我做两件事,我就能克服这个问题
我很想听听你对这件事的看法
thnx
< P>我们不希望学生从DATALALER继承,因为我认为数据层是一个不相关的类,它只保存我获得的数据,如学生、教师等。
不确定这是您想要的方式,但如果我正确理解您试图做的事情,我认为您希望使用继承
因此,在本例中,
Student
是您的“子类”(这就是为什么要传递Datalayer
作为其参数)。在__init__
中,您想调用super(Student, self).__init__()
(或者只super().__init__()
来实例化您的“父类”Datalayer
,这样您就可以访问触发器的__init__
函数您可能需要阅读一些其他示例来正确理解它(https://realpython.com/python-super/)
相关问题 更多 >
编程相关推荐