我遇到了獲取我需要的輸出的問題。我使用一個模塊(稱爲q3.py)與3定義的類:學生,模塊和註冊和執行它與下面的細節另一個文件:TypeError:str只需要2個參數錯誤
#testq3.py
from q3 import *
james = Student('james')
alice = Student('alice')
mary = Student('mary')
agm = Module('agm')
ipp = Module('ipp')
r = Registrations()
r.add(james,agm)
r.add(alice,agm)
r.add(alice,ipp)
mstr = ''
for m in map(str,r.modules(alice)):
mstr = mstr+' '+m
print(alice, 'is doing the following modules:', mstr)
sstr = ''
for s in map(str,r.students(agm)):
sstr = sstr+' '+s
print(agm, 'has the following students:', sstr)
print(r)
然後這裏是我的q3.py文件.. 。
class Student:
'Class to define student details'
def __init__(self, name):
self.name = name
def __str__(self, name):
return (self.name)
def __iter__(self, name):
return iter(self.name)
class Module:
'Class to define module codes'
def __init__(self, modules):
self.modules = modules
def __str__(self, modules):
return self.modules
def __iter__(self, modules):
return iter(self.modules)
class Registrations():
'Class telling us what modules students are taking'
def __init__(self):
self.reglist = []
def add(self, students, modules):
self.reglist.append((students, modules))
def students(self, modules):
for x in self.reglist:
if x[1] == modules:
print x[0]
def modules(self, students):
for y in self.reglist:
if y[0] == students:
print y[1]
我不斷收到錯誤,如:
Traceback (most recent call last):
for m in map(str,r.modules(alice)):
File ".....", line 37, in modules
print y[1]
TypeError: __str__() takes exactly 2 arguments (1 given)
所以我在STR加入,也ITER,因爲我不斷收到參數2迭代錯誤。我哪裏錯了?我只是希望輸出與testq3.py底部的相同。請幫忙??我很確定我有很多str/iter錯誤,但是我一定還有其他的東西,因爲我沒有得到任何接近我想要的輸出的東西,儘管玩了很多年。任何幫助,將不勝感激!
您應該刪除您的編輯,詢問第二個問題,然後在另一個問題中提出第二個問題。就目前來看,你的編輯問題,你的標題是沒有意義的,答案是沒有意義的。這樣做被認爲是不好的形式......只是問第二個問題。 – SethMMorton
對不起,我是新人,不知道,我會記住未來。 – user3078840