如何在cs串列中添加兩個dict
我想在 addcoursess 函式中的 cs 串列中添加兩個字典,但它給出了一個錯誤文本錯誤:需要 1 個位置引數,但給出了 2 個
主名單:
cs = [
{
"title": "Python",
"teacher": "Amiri",
},
{
"title": "HTML",
"teacher": "Dehyami",
},
{
"title": "PHP",
"teacher": "Enayati"
}
]
class User:
def __init__(self, fisrtname, lastname):
self.fname = fisrtname
self.lname = lastname
def fullname(self):
print(f"my fullname is {self.fname} {self.lname}")
class Student(User):
def __init__(self, fisrtname, lastname, email):
super().__init__(fisrtname, lastname)
self.email = email
self.coursess = []
def fullname(self):
print("i am an student")
super().fullname()
def printcoursess(self):
if self.coursess:
for course in self.coursess:
print("Coursess : " course["title"])
else:
print("There is no course")
這是錯誤所在的類
class Teacher(User):
def __init__(self, fisrtname, lastname, code):
super().__init__(fisrtname, lastname)
self.code = code
def addcoursess(item):
dict = {}
dict.update(item)
cs.append(dict)
print(dict)
def fullname(self):
print("i am an teacher")
super().fullname()
t1 = Teacher("abolfazl", "zaker", 3223)
在此處添加課程功能
t1.addcoursess({"title": "Java", "teacher": "ganjeali"})
print(cs)
uj5u.com熱心網友回復:
你錯過了self函式定義中的引數。您的 Teacher 類應如下所示:
class Teacher(User):
def __init__(self, fisrtname, lastname, code):
super().__init__(fisrtname, lastname)
self.code = code
def addcoursess(self, item):
dict = {}
dict.update(item)
cs.append(dict)
print(dict)
def fullname(self):
print("i am an teacher")
super().fullname()
或者,如果您不想傳遞self,則應使用@staticmethod裝飾器定義該類,如下所示:
class Teacher(User):
def __init__(self, fisrtname, lastname, code):
super().__init__(fisrtname, lastname)
self.code = code
@staticmethod
def addcoursess(item):
dict = {}
dict.update(item)
cs.append(dict)
print(dict)
def fullname(self):
print("i am an teacher")
super().fullname()
關于靜態方法的資訊在這里:https : //docs.python.org/3/library/functions.html#staticmethod
uj5u.com熱心網友回復:
您的老師類方法丟失self,關鍵字。它應該如下所示
class Teacher(User):
def __init__(self, fisrtname, lastname, code):
super().__init__(fisrtname, lastname)
self.code = code
def addcoursess(self, item):
dict = {}
dict.update(item)
cs.append(dict)
print(dict)
def fullname(self):
print("i am an teacher")
super().fullname()
uj5u.com熱心網友回復:
你忘了self在你addcoursess的Teacher類方法中添加,它應該是addcourse(self,item):
這是您的完整作業代碼。
cs = [
{
"title": "Python",
"teacher": "Amiri",
},
{
"title": "HTML",
"teacher": "Dehyami",
},
{
"title": "PHP",
"teacher": "Enayati"
}
]
class User:
def __init__(self, fisrtname, lastname):
self.fname = fisrtname
self.lname = lastname
def fullname(self):
print(f"my fullname is {self.fname} {self.lname}")
class Student(User):
def __init__(self, fisrtname, lastname, email):
super().__init__(fisrtname, lastname)
self.email = email
self.coursess = []
def fullname(self):
print("i am an student")
super().fullname()
def printcoursess(self):
if self.coursess:
for course in self.coursess:
print("Coursess : " course["title"])
else:
print("There is no course")
class Teacher(User):
def __init__(self, fisrtname, lastname, code):
super().__init__(fisrtname, lastname)
self.code = code
def addcoursess(self, item):
dict = {}
dict.update(item)
cs.append(dict)
print(dict)
def fullname(self):
print("i am an teacher")
super().fullname()
t1 = Teacher("abolfazl", "zaker", 3223)
t1.addcoursess({"title": "Java", "teacher": "ganjeali"})
print(cs)
uj5u.com熱心網友回復:
你已經忘記了你宣言中的自我
def addcoursess(self, item):
我的結果如下:
[{'teacher': 'Amiri', 'title': 'Python'}, {'teacher': 'Dehyami', 'title': 'HTML'}, {'teacher': 'Enayati', 'title': 'PHP'}, {'teacher': 'ganjeali', 'title': 'Java'}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/391714.html
