Python oop代码说明

时间:2018-01-21 09:25:34

标签: python python-3.x

我的作业存在问题我无法弄清楚如何修改当前代码以反映我的作业中需要的内容。我必须能够将我的团队成员姓名包含在电话号码和球衣号码中。我还必须能够保存新信息。任何人都可以帮忙解释一下吗?

我希望了解在出现在名称,手机和球衣内显示信息时我的错误。现在,它仅为名称s提供输出,为数字提供h,为球衣号提供a。当试图删除成员中的某个人时,它不会删除。

我的代码初始代码如下:

members=['shay', 'lee']

def printMenu():
print("===========Main Menu===========")
print("1. Display Team Roster.")
print("2. Add Member.")
print("3. Remove Member.")
print("4. Edit Member.")
print("9. Exit Program.")

while printMenu()!='9':
sele=int(input("Enter Choice: "))
if sele==1:
    for i in members:
        print(i)
if sele==2:
    name=input("Enter new member's name: ")
    members.append(name)
    for i in members:
        print(i)
if sele==3:
    name=input("Enter member name to be removed: ")
    members.remove(name)
    for i in members:
        print(i)
if sele==4:
    name=input("Enter the name of the memeber you want to edit: ")
    i=members.index(name)
    name2=input("Enter the new name of the member: ")
    members.remove(name)
    members.insert(i,name2)
    for i in members:
        print(i)
elif sele==9:
    print("Have A Great Day!")
    bye=exit()
    bye

这就是我的尝试:

class Member:
    def __init__(self):
        members=["shay, 702546445,69","lee,564565.89"]
        self.members=members
    def addMember(self,name,phone,jersey):
        members=self.members
        nm=[name,phone,jersey]
        self.members.append(nm)
    def display(self):
        members=self.members
        for p in members:
            print("Name= {0}, Phone Number ={1}, Jersey{2}".format(p[0],p[1],p[2]))
    def remove(self,name):
        members=self.members
        for p in members:
            if p[0]==name:
                self.members.remove(p)
    def edit(self,name,name2):
        members=self.members
        for p in members:
            if p[0]==name:
                self.members.remove(p)
                p[0]=name2
                self.members.append(p)


def printMenu():
    print("===========Main Menu===========")
    print("1. Display Team Roster.")
    print("2. Add Member.")
    print("3. Remove Member.")
    print("4. Edit Member.")
    print("9. Exit Program.")


member=Member()
while True:
    printMenu()
    sel=int(input("Selection>"))
    if sel==1:
        member.display()
    if sel==2:
        name=input("Enter new member's name: ")
        number=input("Enter new member's phone number: ")
        jersey=input("Enter new member's jersey number: ")
        member.addMember(name,number,jersey)
    if sel==3:
        name=input("Enter member name to be removed: ")
        member.remove(name)
    if sel==4:
        name=input("Enter the name of the memeber you want to edit: ")
        name2=input("Enter the new name of the member: ")
        member.edit(name,name2)
    if sel==9:
        sys.exit()

1 个答案:

答案 0 :(得分:0)

以面向对象的编程。

我们创造对象。这是对象的示例定义。我叫它Member。在Python中,大写首字母通常表示这是class定义。哪个术语用于描述对象的模板

class Member(object):

    def __init__(self, field_1, field_2):
        self.field_1 = field_1
        self.field_2 = field_2

这是实例化我的Member对象的示例。

>>> member = Member(1,2)  # <- Instantiating 
>>> member.field_1        # <- Accessing a field
1
>>> member.field_2
2

请注意我是如何调用实例member而不是Member

成员实例有两个attributes类,Member类在类__init__方法中定义。 field_1field_2

self方法签名中的奇怪__init__参数可能是我创建的member实例。你可以看到两个任务已经完成。 self.field_1 = field_1 ...

如果您能够理解所有这些,那么您可以很好地将这些知识运用到您的问题中。