【问题标题】:append data to constructor empty list variable in python将数据附加到python中的构造函数空列表变量
【发布时间】:2020-03-14 01:58:34
【问题描述】:

我有一节课。为此,我想将数据附加到构造函数空列表变量。我正在尝试附加数据。但它不起作用并抛出错误,因为“NameError:名称'项目'未定义”。在此代码工作之前。

这是我的代码 sn-p :

class data:
    def __init__(self,items=[]):
        self.items = items
        self.m1(n)
    def m1(self,n):
        self.n=2
        for i in range(self.n):
            d = input('enter the values :')
            self.items.append(d)
        print(self.items)
d=data(items)

【问题讨论】:

    标签: python python-3.x list python-2.7


    【解决方案1】:

    这里有一些问题是错误的:

    1.) 在第 11 行,项目在尝试初始化类之前没有在任何地方定义,因此当您调用时最终会收到错误

     d=data(items)
    

    2.) 在第 4 行,未定义 n。它既不作为构造函数的参数传入,也不在构造函数块中的其他地方定义。您需要定义 n。

    这是一个工作版本,所有变量都已正确定义:

    class data:
        def __init__(self, n, items=[]):
            self.items = items
            self.m1(n)
    
        def m1(self, n):
            self.n=2
            for i in range(self.n):
                d = input('enter the values :')
                self.items.append(d)
            print(self.items)
    
    items = [1, 5, 7]
    d = data(2, items)
    

    【讨论】:

    • 它显示的错误相同。以前我的代码已经工作了。但现在它不工作了。
    • 你能再试一次吗?我做了一些编辑。主要问题是您需要在初始化 d items = [1, 5, 7] d = data(2, items) 之前已经在某处定义项目
    • 好的...谢谢。它正在工作。但以前我的代码 sn-p 正在工作。现在它不工作了。该代码 sn-p 有什么问题。
    • 我在上面的答案中强调的相同内容。在第 11 行,项目没有在任何地方定义,在构造函数中,n 也没有在任何地方定义。
    【解决方案2】:
    class data:
    def __init__(self,number,name,list_values=[]):
        self.number = int(input('Enter a number :'))
        self.name = name
        self.list_values = list_values
        self.m1()
    def m1(self):
        for i in range(self.number):
            items = input('Enter the values :')
            self.list_values.append(items)
        print(self.list_values)
    list_values= None
    d=data('siddarth',list_values)
    

    【讨论】:

      猜你喜欢
      • 2015-06-12
      • 1970-01-01
      • 2019-09-08
      • 2021-11-01
      • 1970-01-01
      • 2013-10-22
      • 2016-08-01
      • 1970-01-01
      • 2019-12-16
      相关资源
      最近更新 更多