首页 > 解决方案 > 为什么即使在其中附加项目后,我也会在 python 中得到空白列表作为输出?

问题描述

  #bll
class cms():
    def __init__(self):
        self.namelist = []
        self.idlist = []
        self.moblist = []
        self.emaillist = []
        self.reslist = []

    def addcustomer(self):
        self.idlist.append(id)
        self.namelist.append(name)
        self.moblist.append(mob)
        self.emaillist.append(email)
        return print("Customer Added")

    def showcustomer(self):
        print(self.idlist, self.namelist, self.moblist, self.emaillist)
#pl
while(1):
    print("Enter Your Choice  Enter 1 to Add, 2 to search, 3 to delete, 4 to Modify, 5 to Display All, 6 to Exit")
    ch = input("Enter your choice")
    conman = cms()
    if ch == '1':
        id = input("ENter your id")
        name = input("Enter Your name")
        mob = input("Enter your mobile no")
        email = input("Enter your email")
        conman.addcustomer()

    elif ch == '2':
        conman.showcustomer()

这是我输入 1 时的代码,然后添加了客户,但是当我调用另一种方法来打印该附加项目时,它返回空白列表输出:- 输入您的选择 2 [] [] [] [] 帮助!请。

标签: pythonlistoop

解决方案


conman = cms()

因为 this 在循环内部,所以每次通过循环时,都会创建一个单独的、cms带有自己的数据列表的新的,并conman为新值命名。

elif ch == '2':
    conman.showcustomer()

因此,这会显示来自 new 的信息conman,而忽略在循环的前一次迭代中完成的所有内容。


推荐阅读