开发者社区 问答 正文

将数据附加到python中的构造函数空列表变量

我有一堂课。为此,我想将数据追加到构造函数的空列表变量。我正在尝试附加数据。但这不起作用,并会引发错误,因为“ NameError:未定义名称'items'”。在执行此代码之前。

这是我的代码片段:

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)

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 19:01:40 382 分享 版权
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)
    

    回答来源:stackoverflow

    2020-03-24 19:01:49
    赞同 展开评论