[英]passing data from one class method to another class method
我正在學習 Python 和課程,我遇到了需要幫助的挑戰。
當我嘗試將數據從一個 class 方法傳遞到另一個 class 方法時,我遇到了一個錯誤,告訴我它錯過了一個位置參數
例子:
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_entry 需要兩個 arguments 而我只發送一個
如果我做兩件事,現在我可以克服這個問題
我很想聽聽你對此事的看法
謝謝
附言。 我不希望學生從 DataLayer 繼承,因為我認為 DataLayer 是一個不相關的 class,它只保存我從學生、教師等類中獲取的數據
不確定這是您想要 go 的方式,但是如果我正確理解您要做什么,我認為您想使用inheritance 。
class Datalayer:
def __init__(self):
self.dict = {}
def create_dict_entry(self, name):
new_name = {"name":name}
self.dict[self.name] = new_name
class Student(Datalayer):
def __init__(self, name):
super().__init__()
self.name = name
def pass_to_dl(self):
self.create_dict_entry(self.name)
所以在這個例子中, Student
是你的“子類”(這就是你傳遞Datalayer
作為它的參數的原因)。 在你的__init__
中,你想調用super(Student, self).__init__()
(或者只是super().__init__()
來實例化你的“父類”, Datalayer
所以你可以訪問觸發它的__init__
function。
您可能想閱讀一些其他示例以正確理解它( https://realpython.com/python-super/ )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.